diff --git a/Tests/BigIntTests/Helpers/BigInt+Extensions.swift b/Tests/BigIntTests/Helpers/BigInt+Extensions.swift new file mode 100644 index 00000000..4be41225 --- /dev/null +++ b/Tests/BigIntTests/Helpers/BigInt+Extensions.swift @@ -0,0 +1,69 @@ +//===--- BigInt+Extensions.swift ------------------------------*- swift -*-===// +// +// This source file is part of the Swift Numerics open source project +// +// Copyright (c) 2023 Apple Inc. and the Swift Numerics project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// +//===----------------------------------------------------------------------===// + +import BigIntModule + +extension BigInt { + + internal typealias Word = Words.Element + + internal init(isPositive: Bool, magnitude: [BigIntPrototype.Word]) { + let p = BigIntPrototype(isPositive: isPositive, magnitude: magnitude) + self = p.create() + } + + internal init(_ sign: BigIntPrototype.Sign, magnitude: BigIntPrototype.Word) { + let p = BigIntPrototype(sign, magnitude: magnitude) + self = p.create() + } + + internal init(_ sign: BigIntPrototype.Sign, magnitude: [BigIntPrototype.Word]) { + let p = BigIntPrototype(sign, magnitude: magnitude) + self = p.create() + } + + internal func power(exponent: BigInt) -> BigInt { + precondition(exponent >= 0, "Exponent must be positive") + + if exponent == 0 { + return BigInt(1) + } + + if exponent == 1 { + return self + } + + // This has to be after 'exp == 0', because 'pow(0, 0) -> 1' + if self == 0 { + return 0 + } + + var base = self + var exponent = exponent + var result = BigInt(1) + + // Eventually we will arrive to most significant '1' + while exponent != 1 { + let exponentIsOdd = exponent & 0b1 == 1 + + if exponentIsOdd { + result *= base + } + + base *= base + exponent >>= 1 // Basically divided by 2, but faster + } + + // Most significant '1' is odd: + result *= base + return result + } +} diff --git a/Tests/BigIntTests/Helpers/BigIntPrototype.swift b/Tests/BigIntTests/Helpers/BigIntPrototype.swift new file mode 100644 index 00000000..6995a8bd --- /dev/null +++ b/Tests/BigIntTests/Helpers/BigIntPrototype.swift @@ -0,0 +1,293 @@ +//===--- BigIntPrototype.swift --------------------------------*- swift -*-===// +// +// This source file is part of the Swift Numerics open source project +// +// Copyright (c) 2023 Apple Inc. and the Swift Numerics project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// +//===----------------------------------------------------------------------===// + +import XCTest +import BigIntModule + +// MARK: - BigIntPrototype + +/// Abstract way of representing `BigInt` without assuming internal representation. +/// Basically an immutable `Word` collection with a sign. +/// +/// It can be used to create multiple independent `BigInt` instances with +/// the same value (used during equality tests etc). +internal struct BigIntPrototype { + + internal typealias Word = UInt64 + + internal enum Sign { + case positive + case negative + } + + /// Internally `Int1`. + internal let sign: Sign + /// Least significant word is at index `0`. + /// Empty means `0`. + internal let magnitude: [Word] + + internal var isPositive: Bool { + return self.sign == .positive + } + + internal var isNegative: Bool { + return self.sign == .negative + } + + internal var isZero: Bool { + return self.magnitude.isEmpty + } + + /// Is `magnitude == 1`?` It may be `+1` or `-1` depending on the `self.sign`. + internal var isMagnitude1: Bool { + return self.magnitude.count == 1 && self.magnitude[0] == 1 + } + + internal init(_ sign: Sign, magnitude: Word) { + self.init(sign, magnitude: [magnitude]) + } + + internal init(_ sign: Sign, magnitude: [Word]) { + self.sign = sign + self.magnitude = magnitude + + let isZero = self.magnitude.isEmpty + let zeroHasPositiveSign = !isZero || sign == .positive + assert(zeroHasPositiveSign, "[BigIntPrototype] Negative zero") + } + + internal init(isPositive: Bool, magnitude: [Word]) { + let sign: Sign = isPositive ? .positive : .negative + self.init(sign, magnitude: magnitude) + } + + /// `BigInt` -> `BigIntPrototype`. + @available( + *, + deprecated, + message: "Use only when writing test cases to convert BigInt -> Prototype." + ) + internal init(_ big: BigInt) { + var n = abs(big) + + let power = BigInt(Word.max) + 1 + var magnitude = [Word]() + + while n != 0 { + let rem = n % power + magnitude.append(Word(rem)) + n /= power + } + + let sign = big < 0 ? Sign.negative : Sign.positive + self = BigIntPrototype(sign, magnitude: magnitude) + } + + internal var withOppositeSign: BigIntPrototype { + assert(!self.isZero, "[BigIntPrototype] Negative zero: (0).withOppositeSign") + return BigIntPrototype(isPositive: !self.isPositive, magnitude: self.magnitude) + } + + internal func withAddedWord(word: Word) -> BigIntPrototype { + var magnitude = self.magnitude + magnitude.append(word) + return BigIntPrototype(isPositive: self.isPositive, magnitude: magnitude) + } + + internal var withRemovedWord: BigIntPrototype { + assert(!self.isZero, "[BigIntPrototype] Removing word from zero") + + var magnitude = self.magnitude + magnitude.removeLast() + + // Removing word may have made the whole value '0', which could change sign! + let isZero = magnitude.isEmpty + let isPositive = self.isPositive || isZero + return BigIntPrototype(isPositive: isPositive, magnitude: magnitude) + } + + /// Collection where each element is a `BigIntPrototype` with one of the words + /// modified by provided `wordChange`. + /// + /// Used to easily create prototypes with smaller/bigger magnitude. + /// Useful for testing `==`, `<`, `>`, `<=` and `>=`. + internal func withEachMagnitudeWordModified( + byAdding wordChange: Int + ) -> WithEachMagnitudeWordModified { + return WithEachMagnitudeWordModified(base: self, by: wordChange) + } + + internal func create() -> BigInt { + return BigIntPrototype.create(isPositive: self.isPositive, magnitude: self.magnitude) + } + + internal static func create( + isPositive: Bool, + magnitude: [T] + ) -> BigInt { + assert(!T.isSigned) + var result = BigInt() + var power = BigInt(1) + + for word in magnitude { + // As for the magic '+1' in power: + // Without it (example for UInt8): + // [255] -> 255*1 = 255 + // [0, 1] -> 0 *1 + 1*255 = 255 + // So, we have 2 ways of representing '255' (aka. T.max) + // With it: + // [255] -> 255*1 = 255 + // [0, 1] -> 0 *1 + 1*(255+1) = 256 + result += BigInt(word) * power + power *= BigInt(T.max) + 1 + } + + if !isPositive { + result *= -1 + } + + return result + } + + internal enum CompareResult { + case equal + case less + case greater + } + + internal static func compare(_ lhs: BigIntPrototype, + _ rhs: BigIntPrototype) -> CompareResult { + let lhsM = lhs.magnitude + let rhsM = rhs.magnitude + + guard lhsM.count == rhsM.count else { + return lhsM.count > rhsM.count ? .greater : .less + } + + for (l, r) in zip(lhsM, rhsM).reversed() { + if l > r { + return .greater + } + + if l < r { + return .less + } + } + + return .equal + } +} + +// MARK: - Modify magnitude words + +internal struct WithEachMagnitudeWordModified: Sequence { + + internal typealias Element = BigIntPrototype + + internal struct Iterator: IteratorProtocol { + + private let base: BigIntPrototype + private let wordChange: Int + private var wordIndex = 0 + + internal init(base: BigIntPrototype, wordChange: Int) { + self.base = base + self.wordChange = wordChange + } + + internal mutating func next() -> Element? { + var magnitude = self.base.magnitude + let wordChangeMagnitude = BigIntPrototype.Word(self.wordChange.magnitude) + + while self.wordIndex < magnitude.count { + let word = magnitude[self.wordIndex] + defer { self.wordIndex += 1 } + + let (newWord, hasOverflow) = self.wordChange >= 0 ? + word.addingReportingOverflow(wordChangeMagnitude) : + word.subtractingReportingOverflow(wordChangeMagnitude) + + if !hasOverflow { + magnitude[self.wordIndex] = newWord + let isPositive = self.base.isPositive + return BigIntPrototype(isPositive: isPositive, magnitude: magnitude) + } + } + + return nil + } + } + + private let base: BigIntPrototype + private let wordChange: Int + + internal init(base: BigIntPrototype, by wordChange: Int) { + self.base = base + self.wordChange = wordChange + } + + internal func makeIterator() -> Iterator { + return Iterator(base: self.base, wordChange: self.wordChange) + } +} + +// MARK: - Tests + +/// Tests for `BigIntPrototype`. +/// Yep… we are testing our test code… +class BigIntPrototypeTests: XCTestCase { + + func test_create() { + let p1 = BigIntPrototype(.positive, magnitude: [.max]) + let big1 = p1.create() + let expected1 = BigInt(BigIntPrototype.Word.max) + XCTAssertEqual(big1, expected1) + + let p2 = BigIntPrototype(.positive, magnitude: [0, 1]) + let big2 = p2.create() + let expected2 = BigInt(BigIntPrototype.Word.max) + 1 + XCTAssertEqual(big2, expected2) + } + + func test_magnitudeWordModified_positive() { + let p = BigIntPrototype(.positive, magnitude: [3, .max, 5]) + let modified = p.withEachMagnitudeWordModified(byAdding: 7) + var iter = modified.makeIterator() + + let p1 = iter.next() + XCTAssertEqual(p1?.magnitude, [10, .max, 5]) + + // '.max' should be skipped, because it overflows + + let p2 = iter.next() + XCTAssertEqual(p2?.magnitude, [3, .max, 12]) + + let p3 = iter.next() + XCTAssertNil(p3) + } + + func test_magnitudeWordModified_negative() { + let p = BigIntPrototype(.positive, magnitude: [7, 3, 11]) + let modified = p.withEachMagnitudeWordModified(byAdding: -5) + var iter = modified.makeIterator() + + let p1 = iter.next() + XCTAssertEqual(p1?.magnitude, [2, 3, 11]) + + // '3' should be skipped, because it overflows + + let p2 = iter.next() + XCTAssertEqual(p2?.magnitude, [7, 3, 6]) + + let p3 = iter.next() + XCTAssertNil(p3) + } +} diff --git a/Tests/BigIntTests/Helpers/CartesianProduct.swift b/Tests/BigIntTests/Helpers/CartesianProduct.swift new file mode 100644 index 00000000..cbbb6b1b --- /dev/null +++ b/Tests/BigIntTests/Helpers/CartesianProduct.swift @@ -0,0 +1,67 @@ +//===--- CartesianProduct.swift -------------------------------*- swift -*-===// +// +// This source file is part of the Swift Numerics open source project +// +// Copyright (c) 2023 Apple Inc. and the Swift Numerics project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// +//===----------------------------------------------------------------------===// + +/// `[1, 2], [A, B] -> [(1,A), (1,B), (2,A), (2,B)]` +internal struct CartesianProduct: Sequence { + + internal typealias Element = (T, V) + + internal struct Iterator: IteratorProtocol { + + private let lhsValues: [T] + private let rhsValues: [V] + + // Index of the next emitted element + private var lhsIndex = 0 + private var rhsIndex = 0 + + fileprivate init(lhs: [T], rhs: [V]) { + self.lhsValues = lhs + self.rhsValues = rhs + } + + internal mutating func next() -> Element? { + if self.lhsIndex == self.lhsValues.count { + return nil + } + + let lhs = self.lhsValues[self.lhsIndex] + let rhs = self.rhsValues[self.rhsIndex] + + self.rhsIndex += 1 + if self.rhsIndex == self.rhsValues.count { + self.lhsIndex += 1 + self.rhsIndex = 0 + } + + return (lhs, rhs) + } + } + + private let lhsValues: [T] + private let rhsValues: [V] + + /// `[1, 2] -> [(1,1), (1,2), (2,1), (2,2)]` + internal init(_ values: [T]) where T == V { + self.lhsValues = values + self.rhsValues = values + } + + /// `[1, 2], [A, B] -> [(1,A), (1,B), (2,A), (2,B)]` + internal init(_ lhs: [T], _ rhs: [V]) { + self.lhsValues = lhs + self.rhsValues = rhs + } + + internal func makeIterator() -> Iterator { + return Iterator(lhs: self.lhsValues, rhs: self.rhsValues) + } +} diff --git a/Tests/BigIntTests/Helpers/GenerateNumbers.swift b/Tests/BigIntTests/Helpers/GenerateNumbers.swift new file mode 100644 index 00000000..2f547fa9 --- /dev/null +++ b/Tests/BigIntTests/Helpers/GenerateNumbers.swift @@ -0,0 +1,77 @@ +//===--- GenerateNumbers.swift --------------------------------*- swift -*-===// +// +// This source file is part of the Swift Numerics open source project +// +// Copyright (c) 2023 Apple Inc. and the Swift Numerics project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// +//===----------------------------------------------------------------------===// + +@testable import BigIntModule + +internal func generateInts(approximateCount: Int) -> [Int] { + assert(approximateCount > 0, "[generateInts] Negative 'approximateCount'.") + + var result = [Int]() + result.append(0) + result.append(1) + result.append(-1) + + // 'Int' has smaller range on the positive side, so we will use it to calculate 'step'. + let approximateCountHalf = approximateCount / 2 + let step = Int.max / approximateCountHalf + + // 1st iteration will append 'Int.min' and 'Int.max' + for i in 0.. [BigIntPrototype] { + assert(approximateCount > 0, "[generateBigInts] Negative 'approximateCount'.") + assert(maxWordCount > 0, "[generateBigInts] Negative 'maxWordCount'.") + + typealias Word = BigIntPrototype.Word + var result = [BigIntPrototype]() + + result.append(BigIntPrototype(.positive, magnitude: [])) // 0 + result.append(BigIntPrototype(.positive, magnitude: [1])) // 1 + result.append(BigIntPrototype(.negative, magnitude: [1])) // -1 + + // All words = Word.max + for count in 1...maxWordCount { + let magnitude = Array(repeating: Word.max, count: count) + result.append(BigIntPrototype(.positive, magnitude: magnitude)) + result.append(BigIntPrototype(.negative, magnitude: magnitude)) + } + + let approximateCountHalf = approximateCount / 2 + var word = Word.max / 2 // Start from half and go up by 1 + + for i in 0..= .zero ? .positive : .negative + } +} + +extension Int { + internal func shiftLeftFullWidth(by n: Int) -> BigInt { + // A lot of those bit shenanigans are based on the following observation: + // 7<<5 -> 224 + // -7<<5 -> -224 + // Shifting values with the same magnitude gives us result with the same + // magnitude (224 vs -224). Later you just have to do sign correction. + let magnitude = self.magnitude + let width = Int.bitWidth + + let low = magnitude << n + let high = magnitude >> (width - n) // Will sign extend + let big = (BigInt(high) << width) | BigInt(low) + return self < 0 ? -big : big + } +} diff --git a/Tests/BigIntTests/Helpers/PowersOf2.swift b/Tests/BigIntTests/Helpers/PowersOf2.swift new file mode 100644 index 00000000..a7360b35 --- /dev/null +++ b/Tests/BigIntTests/Helpers/PowersOf2.swift @@ -0,0 +1,60 @@ +//===--- PowersOf2.swift --------------------------------------*- swift -*-===// +// +// This source file is part of the Swift Numerics open source project +// +// Copyright (c) 2023 Apple Inc. and the Swift Numerics project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// +//===----------------------------------------------------------------------===// + +internal typealias PowerOf2 = (power: Int, value: T) + +/// `1, 2, 4, 8, 16, 32, 64, 128, 256, 512, etc…` +internal func PositivePowersOf2( + type: T.Type +) -> [PowerOf2] { + var result = [PowerOf2]() + result.reserveCapacity(T.bitWidth) + + var value = T(1) + var power = 0 + result.append(PowerOf2(power: power, value: value)) + + while true { + let (newValue, overflow) = value.multipliedReportingOverflow(by: 2) + if overflow { + return result + } + + value = newValue + power += 1 + result.append(PowerOf2(power: power, value: value)) + } +} + +/// `-1, -2, -4, -8, -16, -32, -64, -128, -256, -512, etc…` +internal func NegativePowersOf2( + type: T.Type +) -> [PowerOf2] { + assert(T.isSigned) + + var result = [PowerOf2]() + result.reserveCapacity(T.bitWidth) + + var value = T(-1) + var power = 0 + result.append(PowerOf2(power: power, value: value)) + + while true { + let (newValue, overflow) = value.multipliedReportingOverflow(by: 2) + if overflow { + return result + } + + value = newValue + power += 1 + result.append(PowerOf2(power: power, value: value)) + } +} diff --git a/Tests/BigIntTests/Helpers/StringTestCases.generated.py b/Tests/BigIntTests/Helpers/StringTestCases.generated.py new file mode 100644 index 00000000..74ad9cf6 --- /dev/null +++ b/Tests/BigIntTests/Helpers/StringTestCases.generated.py @@ -0,0 +1,295 @@ +#===--- StringTestCases.generated.py ---------------------------*- swift -*-===# +# +# This source file is part of the Swift Numerics open source project +# +# Copyright (c) 2023 Apple Inc. and the Swift Numerics project authors +# Licensed under Apache License v2.0 with Runtime Library Exception +# +# See https://swift.org/LICENSE.txt for license information +# +#===------------------------------------------------------------------------===# + +from dataclasses import dataclass + +@dataclass +class Radix: + name: str + num: int + groups: 'list[Group]' + +@dataclass +class Group: + name: str + strings: 'list[str]' + +TEST_SUITES = [ + Radix('Binary', 2, [ + Group('singleWord', [ + "1100111011101101011000001101001100000111010111010001001011011111", + "1111101001111100000100011110010100110111000111000010000010101011", + "1010101000000000010110000110101100010000101011011101000000011111", + "100111011011000011001000001000101100001010001100110001001100000", + "100101110001011110101110001100011101011110100111010111010010011", + "1100100111110100011110000101010101101010011111000110100010101000", + "1001110110010011111100000111111010000100110010011001101111101", + "101000001100111110010110000001111001100010100101011010000101011", + "1011001011100101000101001101111111000110011111110010100110011101", + "110001001001100000011000010001100001100101111100111100111011111" + ]), + Group('twoWords', [ + "1001010111000000011001110010011010011001010101000010000001111100110101011111111001110000111010011100001101001010100101010001011", + "10110101001011101011011100010010110100001011100101100010110100101000101110111011101011110000110100110010000011110001111101011011", + "10100100110001100010101010111111010100101000000101100000010100001000011011000101000101010100110111100100011001101110111010100111", + "101001000110111101111011100010100111000011101101100101000011010000010000011101101011101000101011101111101011101110011001000110", + "1010110101111011110001001010101111011010100101110010111000001100011110001110001010001001101001101010110101001000101100010111000", + "10011100000010010010000000100011000011101010110110001111010111110111100111100100111001010000110000000010111101101000110101001", + "1110010111010011100100010110001000000100000000000011100101010011000101011010001001100011000010110110111101111111111101111", + "11011000000110100101000110000001110110000000011110011000111011100000011000001110011001110111101010100000010101000011011011010000", + "10111010111010100010000000011010111011111101001100000111110001111001111001110000010111010010001100010000101011001101000100101100", + "11111110000010110011011111011111000010011110101011101010010010001110011111010100000100001110111100010011100100110111001100110100" + ]), + ]), + + Radix('Quinary', 5, [ + Group('singleWord', [ + "1141011330110244430443234403", + "1222004313120111310102442141", + "2103043303342222322321322331", + "112432412234101120414313034", + "303003222112001403223431323", + "344142232044113412301430224", + "1220020343312232444212101300", + "2142220433422310201433143031", + "1100240414331322213333313314", + "1142232034423230304021344224" + ]), + Group('twoWords', [ + "203123203032243200414100331344240044242020031202313304", + "2241012313012133231212400333342433431343403034400222232", + "4203331403433210032231444444420301011232202040320244034", + "10232010021201310022422112231324444321204423440331141040", + "11001404212423031440100214040300432233323022042011441003", + "31000242443014011010113041320310341223011340044321112", + "104440411024104113410312042432323043144001330034323023", + "4313032440022022004204011201231102003140212144013012024", + "222241220112410000313023011200201140300201034000223104", + "4142443213143020430040201142133120302113431131300414310" + ]), + ]), + + Radix('Octal', 8, [ + Group('singleWord', [ + "765107426714576726434", + "267013363740675530517", + "1116473563031361443420", + "402115621515715443232", + "763120023606053712451", + "1331662240274670615110", + "61361450215541537600", + "667611024411512075216", + "1766576732635234733764", + "24762136610221532221" + ]), + Group('twoWords', [ + "405353062163251224075541120406576603642133", + "1155525567215754355762261022040102502663535", + "473760700275426615762334030650135006412004", + "3631321221020124075140070266326054733736654", + "2301713511046076774644163027526344262614750", + "1416756055467752004624014151506657745444701", + "277372133117223126207604631572452705305761", + "3233035510177647760346424273160270510130153", + "3603463414404503570230716440162341562104627", + "52174705323046362171603350231267240463067" + ]), + Group('threeWords', [ + "752710076366767021311145241064414721036644045634530560410662164", + "2351074425357060771500511210531201334130757470561023603752203522", + "2026330410062602113214720620652354122635242532243542521246347130", + "2374670546314622762117042710735422651021224342402213330677717022", + "2516462603442110716460774444162701130544323471604701667527612160", + "4752321765021165454357330136132660667377344246225716247045110530", + "2207017273376155030021416376730413255440672604251274423333345737", + "6012155132310337104403010016271520303605661047423036543777774653", + "2405264541731765272641476323011120172731141622224604547111014030", + "102016446227413552760304443460703260141047363565146174776151646" + ]), + ]), + + Radix('Decimal', 10, [ + Group('singleWord', [ + "7718190171501264284", + "10916363490721922425", + "7933533405371913824", + "10480426996613498135", + "2095192256445644812", + "7419235996356813804", + "1781771517166335135", + "11133038279461172192", + "2130720192200721827", + "14853271410540786435", + "6950267042901794576", + "10411748895426429475", + "9833709291961056769", + "5999039672382756712", + "16110142630232532658", + "12607569496212494176", + "1675868323700977277", + "16806170715214457379", + "16940169654426845777", + "8827990282256005918" + ]), + Group('twoWords', [ + "174279629237543296687673032485957064212", + "47412561600764236150769686558222116091", + "10395912425457665851645833014443244462", + "164315376478873129818157066650996676197", + "10602886535953881315042562817407645178", + "8248650871275789350502376241754844651", + "34524867949202500042981821345963565272", + "134216757748210966888150667727713411016", + "171102533986768447955502501639763888523", + "54844876601597866882605545088807789686", + "56893583067640428051926870614216611763", + "324345033888321898323997479933055678710", + "303929611043690622871586457595241643110", + "247198033769360767204907027173829796027", + "21778317495144550468861398478632800064", + "84588039840439783849569873830235438676", + "311126277149403728470285334436356936983", + "139898191933164899225423319256353529614", + "2043258753110477277143778428409140808", + "337382537729550367819433505076096015588" + ]), + Group('threeWords', [ + "6083614195465063921457756617643704987757901496806223861094", + "4559809898618458323618774365881241097705852866053722576068", + "6000655493235750363443630214517832475022981384493522723977", + "3448761127815156638054418593304414317156905140903945500758", + "4031646778810151685478902878630817277976717194269043459535", + "5187043450362884349943980736394397527883291975412376418584", + "867137008351148227772945110512985612059866264001066314234", + "405425063163426737085717989265456363407329145867582794766", + "516394380123300269594485907074283812975608688889426642145", + "5812603356047926610460197272765392220238610608713665689986", + "984508521516077779720769747676107292251302380633744113615", + "3607214625740907391200152863690596886095271299895459353996", + "3555336686841570490688168198501982767988360618443302183344", + "5421257579835065546517323313625099317184145652987724078671", + "5289825533547636872288114877966109957241807144779629060472", + "2220442274754652930479991837181424586345958361124409139160", + "2503918262582474917700425110083118534477438840011330691707", + "2932737070354268352744296521741629050767038012966002878856", + "5936703106691826260722357215905339148900071080037029998472", + "638165476008693250974186539568945174625645764897016299466" + ]), + Group('fourWords', [ + "98329738845668996570124208357521780017272355350396828224707284828351881091866", + "105623193693730296505637022908493828321474575998233295842297319498067956265586", + "27744159210101084003408741123228345882260348087436638008210479865903937724447", + "43975332751786641545687151785881018379208099070772924031466259723893919847420", + "7291043565309214047592216113421685977429724781349367031290578029129539586602", + "83988462562950544098864456303214580453611103336990060118099235083777904234247", + "32980242605770942006188369357622369959610697780125045082756386640312378695240", + "22417645777855749287001476980921879614161082692816351875309530936088143706194", + "7263649581484524992809489869886295226321246688450694700744863589918010440354", + "24728838211123196082450064688238894776920371466824252419807721449583553632242" + ]), + ]), + + Radix('Hex', 16, [ + Group('singleWord', [ + "7d48f16e65fbad1c", + "2dc16f3f06f6b14f", + "93a77730cbc64710", + "4089b91a6f36469a", + "7cca013c30af9529", + "b6764a05e6e31a48", + "c5e32846d86bf80", + "6df121484d287a8e", + "fdafddacea73b7f4", + "53e45ec4246b491" + ]), + Group('twoWords', [ + "d84a106bf60f445b20aeb191cd52941e", + "2c424202150b675d4db55bba37d8edf9", + "37031a82e81a1404277f0e02f62d8df9", + "e16cd61676fbdacf32d148840a83d30", + "1cc2f56722cb19e8983cba48987dfcd2", + "30d346d7f9649c161dee16cdfd404ca", + "e13337a957158bf117efa2d93d265643", + "45176705c520b06bd361da41ff4ff073", + "73a407270dc88997f07338641287784c", + "e0dd0995ba8266370547ce2b4c4cf23c" + ]), + Group('threeWords', [ + "1eae40f9edf708b24caa11a433a21ed20973958b84236474", + "4e91e455de30fcd029288aca05b858f7ce2e213c1fa90752", + "4166c420658225a33a190d53b0a59d515694762a8a99ce58", + "4fcdc5999992f913c45c8eec4b52114a38a048b6c6ff9e12", + "54e9960e4448e74c3f92439704b16469ce709c1dbd5f1470", + "9ea68fd42275963bdb05e2d6c36eff722992bce538949158", + "48707aedfc6d0c0461cfeec42d5b20dd61152bc89b6dcbdf", + "c0a3696990df2240c100e5cd418785d889e261eb1ffff9ab", + "5055a587b3f55d6867cd304940f5d930e492984b39241818", + "42074992f0bb57c189239870d606113bceea663e7f8d3a6" + ]), + ]), +] + +# UInt64.max + 1 +# See the comment in 'BigIntPrototype.create' for '+1' explanation +POWER = 18446744073709551615 + 1 + +def main(): + print('''\ +//===--- StringTestCases.generated.swift ----------------------*- swift -*-===// +// +// This source file is part of the Swift Numerics open source project +// +// Copyright (c) 2023 Apple Inc. and the Swift Numerics project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// +//===----------------------------------------------------------------------===// +// Automatically generated. DO NOT EDIT! +// To regenerate: +// python3 StringTestCases.generated.py > StringTestCases.generated.swift +//===----------------------------------------------------------------------===// + +// swiftlint:disable line_length +// swiftlint:disable trailing_comma +// swiftformat:disable numberFormatting + +extension StringTestCases {\ +''') + + for radix in TEST_SUITES: + print() + print(f' // MARK: - {radix.name}') + print() + print(f' internal enum {radix.name} {{') + + for group in radix.groups: + print() + print(f' internal static let {group.name} = TestSuite(radix: {radix.num}, cases: [') + + for s in group.strings: + words = [] + i = int(s, radix.num) + + while i != 0: + d, m = divmod(i, POWER) + words.append(m) + i = d + + print(f' TestCase({words}, "{s}"),') + print(' ])') + + print(' }') + + print('}') + +if __name__ == '__main__': + main() diff --git a/Tests/BigIntTests/Helpers/StringTestCases.generated.swift b/Tests/BigIntTests/Helpers/StringTestCases.generated.swift new file mode 100644 index 00000000..d40bb648 --- /dev/null +++ b/Tests/BigIntTests/Helpers/StringTestCases.generated.swift @@ -0,0 +1,258 @@ +//===--- StringTestCases.generated.swift ----------------------*- swift -*-===// +// +// This source file is part of the Swift Numerics open source project +// +// Copyright (c) 2023 Apple Inc. and the Swift Numerics project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// +//===----------------------------------------------------------------------===// +// Automatically generated. DO NOT EDIT! +// To regenerate: +// python3 StringTestCases.generated.py > StringTestCases.generated.swift +//===----------------------------------------------------------------------===// + +// swiftlint:disable line_length +// swiftlint:disable trailing_comma +// swiftformat:disable numberFormatting + +extension StringTestCases { + + // MARK: - Binary + + internal enum Binary { + + internal static let singleWord = TestSuite(radix: 2, cases: [ + TestCase([14910680400771486431], "1100111011101101011000001101001100000111010111010001001011011111"), + TestCase([18049321082763878571], "1111101001111100000100011110010100110111000111000010000010101011"), + TestCase([12249888203312320543], "1010101000000000010110000110101100010000101011011101000000011111"), + TestCase([5681400955737104992], "100111011011000011001000001000101100001010001100110001001100000"), + TestCase([5443681076643081875], "100101110001011110101110001100011101011110100111010111010010011"), + TestCase([14552388604195006632], "1100100111110100011110000101010101101010011111000110100010101000"), + TestCase([1419335438964437885], "1001110110010011111100000111111010000100110010011001101111101"), + TestCase([5793822662808745003], "101000001100111110010110000001111001100010100101011010000101011"), + TestCase([12890732459758397853], "1011001011100101000101001101111111000110011111110010100110011101"), + TestCase([7083049658624145887], "110001001001100000011000010001100001100101111100111100111011111"), + ]) + + internal static let twoWords = TestSuite(radix: 2, cases: [ + TestCase([7709943161734646411, 5395369061329276990], "1001010111000000011001110010011010011001010101000010000001111100110101011111111001110000111010011100001101001010100101010001011"), + TestCase([10068833863126163291, 13055573661232751314], "10110101001011101011011100010010110100001011100101100010110100101000101110111011101011110000110100110010000011110001111101011011"), + TestCase([9711191595782958759, 11873224468820222032], "10100100110001100010101010111111010100101000000101100000010100001000011011000101000101010100110111100100011001101110111010100111"), + TestCase([296585062226257478, 2962206244791346445], "101001000110111101111011100010100111000011101101100101000011010000010000011101101011101000101011101111101011101110011001000110"), + TestCase([4355337989126379704, 6250400716541368070], "1010110101111011110001001010101111011010100101110010111000001100011110001110001010001001101001101010110101001000101100010111000"), + TestCase([17238825691124781481, 1405444159956169195], "10011100000010010010000000100011000011101010110110001111010111110111100111100100111001010000110000000010111101101000110101001"), + TestCase([11973739651872522223, 129380782069776498], "1110010111010011100100010110001000000100000000000011100101010011000101011010001001100011000010110110111101111111111101111"), + TestCase([436399990275061456, 15571848279703918830], "11011000000110100101000110000001110110000000011110011000111011100000011000001110011001110111101010100000010101000011011011010000"), + TestCase([11416727460569207084, 13468612935669712839], "10111010111010100010000000011010111011111101001100000111110001111001111001110000010111010010001100010000101011001101000100101100"), + TestCase([16704995536835670836, 18305786541461137992], "11111110000010110011011111011111000010011110101011101010010010001110011111010100000100001110111100010011100100110111001100110100"), + ]) + } + + // MARK: - Quinary + + internal enum Quinary { + + internal static let singleWord = TestSuite(radix: 5, cases: [ + TestCase([10195599536115211853], "1141011330110244430443234403"), + TestCase([11148293617344187171], "1222004313120111310102442141"), + TestCase([16581359024097057841], "2103043303342222322321322331"), + TestCase([1963548865060307269], "112432412234101120414313034"), + TestCase([4650830292194358338], "303003222112001403223431323"), + TestCase([5923527504604717564], "344142232044113412301430224"), + TestCase([11032004014403237700], "1220020343312232444212101300"), + TestCase([17731643299662006016], "2142220433422310201433143031"), + TestCase([8974493917839354209], "1100240414331322213333313314"), + TestCase([10284022934724793689], "1142232034423230304021344224"), + ]) + + internal static let twoWords = TestSuite(radix: 5, cases: [ + TestCase([7166946866828356326, 1283328998154523208], "203123203032243200414100331344240044242020031202313304"), + TestCase([17746844892252647709, 7729270025137380738], "2241012313012133231212400333342433431343403034400222232"), + TestCase([3117040153726440296, 13330676859597655378], "4203331403433210032231444444420301011232202040320244034"), + TestCase([9389283096438931568, 16660274568627612047], "10232010021201310022422112231324444321204423440331141040"), + TestCase([10151668648408986613, 18099786241267349540], "11001404212423031440100214040300432233323022042011441003"), + TestCase([1888399307037804872, 385298439426531010], "31000242443014011010113041320310341223011340044321112"), + TestCase([6144037938277486548, 721424258481946865], "104440411024104113410312042432323043144001330034323023"), + TestCase([14314271871241051703, 14038673589000308396], "4313032440022022004204011201231102003140212144013012024"), + TestCase([1610709691090591847, 1506362658927364202], "222241220112410000313023011200201140300201034000223104"), + TestCase([1877780960810668148, 13192324888935710577], "4142443213143020430040201142133120302113431131300414310"), + ]) + } + + // MARK: - Octal + + internal enum Octal { + + internal static let singleWord = TestSuite(radix: 8, cases: [ + TestCase([9027730909523848476], "765107426714576726434"), + TestCase([3297038718702367055], "267013363740675530517"), + TestCase([10639603696146990864], "1116473563031361443420"), + TestCase([4650451613422864026], "402115621515715443232"), + TestCase([8992000964025095465], "763120023606053712451"), + TestCase([13147777551363676744], "1331662240274670615110"), + TestCase([891205320620556160], "61361450215541537600"), + TestCase([7922149813937273486], "667611024411512075216"), + TestCase([18280073147257698292], "1766576732635234733764"), + TestCase([377816299772228753], "24762136610221532221"), + ]) + + internal static let twoWords = TestSuite(radix: 8, cases: [ + TestCase([15585287516344763483, 2355014894934463518], "405353062163251224075541120406576603642133"), + TestCase([3189184062842169181, 5599482567064088057], "1155525567215754355762261022040102502663535"), + TestCase([3964041246558262276, 2846008895404346873], "473760700275426615762334030650135006412004"), + TestCase([1015224584249523628, 17522684300601343280], "3631321221020124075140070266326054733736654"), + TestCase([2072488601858021864, 10969847613326490834], "2301713511046076774644163027526344262614750"), + TestCase([219889601707657665, 7052321924236707018], "1416756055467752004624014151506657745444701"), + TestCase([16227375082796059633, 1724776236223714883], "277372133117223126207604631572452705305761"), + TestCase([4978561187561123947, 15231695391734886515], "3233035510177647760346424273160270510130153"), + TestCase([8332793074858625431, 17326254193883183180], "3603463414404503570230716440162341562104627"), + TestCase([16203117573032797751, 380499378895123004], "52174705323046362171603350231267240463067"), + ]) + + internal static let threeWords = TestSuite(radix: 8, cases: [ + TestCase([681052395112981620, 5524247289861906130, 2210775909268916402], "752710076366767021311145241064414721036644045634530560410662164"), + TestCase([14856848762854770514, 2965772954907465975, 5661557264032529616], "2351074425357060771500511210531201334130757470561023603752203522"), + TestCase([6238741308901019224, 4186391981714677073, 4712669703510828451], "2026330410062602113214720620652354122635242532243542521246347130"), + TestCase([4080341212257558034, 14149341274818351434, 5750469562719205651], "2374670546314622762117042710735422651021224342402213330677717022"), + TestCase([14875561220749857904, 4580798086887072873, 6118586556778866508], "2516462603442110716460774444162701130544323471604701667527612160"), + TestCase([2995664394837594456, 15782269881219481458, 11431982845400553019], "4752321765021165454357330136132660667377344246225716247045110530"), + TestCase([6995545736791051231, 7048114468200063197, 5219807130683247620], "2207017273376155030021416376730413255440672604251274423333345737"), + TestCase([9935611390414813611, 13907368319050548696, 13881054378609025600], "6012155132310337104403010016271520303605661047423036543777774653"), + TestCase([16470394236095961112, 7479687647312861488, 5788714898313010536], "2405264541731765272641476323011120172731141622224604547111014030"), + TestCase([13614001671611405222, 1770540855717814547, 297365776674567548], "102016446227413552760304443460703260141047363565146174776151646"), + ]) + } + + // MARK: - Decimal + + internal enum Decimal { + + internal static let singleWord = TestSuite(radix: 10, cases: [ + TestCase([7718190171501264284], "7718190171501264284"), + TestCase([10916363490721922425], "10916363490721922425"), + TestCase([7933533405371913824], "7933533405371913824"), + TestCase([10480426996613498135], "10480426996613498135"), + TestCase([2095192256445644812], "2095192256445644812"), + TestCase([7419235996356813804], "7419235996356813804"), + TestCase([1781771517166335135], "1781771517166335135"), + TestCase([11133038279461172192], "11133038279461172192"), + TestCase([2130720192200721827], "2130720192200721827"), + TestCase([14853271410540786435], "14853271410540786435"), + TestCase([6950267042901794576], "6950267042901794576"), + TestCase([10411748895426429475], "10411748895426429475"), + TestCase([9833709291961056769], "9833709291961056769"), + TestCase([5999039672382756712], "5999039672382756712"), + TestCase([16110142630232532658], "16110142630232532658"), + TestCase([12607569496212494176], "12607569496212494176"), + TestCase([1675868323700977277], "1675868323700977277"), + TestCase([16806170715214457379], "16806170715214457379"), + TestCase([16940169654426845777], "16940169654426845777"), + TestCase([8827990282256005918], "8827990282256005918"), + ]) + + internal static let twoWords = TestSuite(radix: 10, cases: [ + TestCase([4443533457689204244, 9447717631965633948], "174279629237543296687673032485957064212"), + TestCase([17900669220997358843, 2570240114532569528], "47412561600764236150769686558222116091"), + TestCase([7856018056960015278, 563563541832512549], "10395912425457665851645833014443244462"), + TestCase([16030846250062419557, 8907554407558390165], "164315376478873129818157066650996676197"), + TestCase([76456108598031866, 574783630844925132], "10602886535953881315042562817407645178"), + TestCase([16060639402207784427, 447160259735582989], "8248650871275789350502376241754844651"), + TestCase([6724383833077440728, 1871596841765025634], "34524867949202500042981821345963565272"), + TestCase([17721423422461386696, 7275905016728549520], "134216757748210966888150667727713411016"), + TestCase([13753655854536165771, 9275486953311460472], "171102533986768447955502501639763888523"), + TestCase([16007314175766750326, 2973146718057590835], "54844876601597866882605545088807789686"), + TestCase([13668675975230855091, 3084207318121013092], "56893583067640428051926870614216611763"), + TestCase([17634210073973176566, 17582779518830157984], "324345033888321898323997479933055678710"), + TestCase([1179859661762935910, 16476057228812186700], "303929611043690622871586457595241643110"), + TestCase([7466570045805584571, 13400632262344301616], "247198033769360767204907027173829796027"), + TestCase([1307790023500255040, 1180604957065739539], "21778317495144550468861398478632800064"), + TestCase([10557776168390327892, 4585526828064760774], "84588039840439783849569873830235438676"), + TestCase([4287714958589154583, 16866189280135533900], "311126277149403728470285334436356936983"), + TestCase([6956547535360810766, 7583896181036572753], "139898191933164899225423319256353529614"), + TestCase([3961997723213026888, 110765278953620120], "2043258753110477277143778428409140808"), + TestCase([16244342368417094884, 18289544018252558769], "337382537729550367819433505076096015588"), + ]) + + internal static let threeWords = TestSuite(radix: 10, cases: [ + TestCase([3788030118483678566, 13587601199963990513, 17878135298378645545], "6083614195465063921457756617643704987757901496806223861094"), + TestCase([3556988877394908356, 12474154662934588154, 13400076941623863208], "4559809898618458323618774365881241097705852866053722576068"), + TestCase([6943250440187782281, 16148677006591030242, 17634341583823379554], "6000655493235750363443630214517832475022981384493522723977"), + TestCase([12051381132750026838, 7772465072843729846, 10134998057705544164], "3448761127815156638054418593304414317156905140903945500758"), + TestCase([11057770507354506703, 3754418486115532988, 11847945032505514529], "4031646778810151685478902878630817277976717194269043459535"), + TestCase([4058671830152788248, 17848382429627053213, 15243350683428292588], "5187043450362884349943980736394397527883291975412376418584"), + TestCase([9506519811871484410, 10336689296818807801, 2548286636764283718], "867137008351148227772945110512985612059866264001066314234"), + TestCase([8153835003846552590, 6452612927418895754, 1191437178575943052], "405425063163426737085717989265456363407329145867582794766"), + TestCase([11092524183389504737, 10258419301515066693, 1517546691578291045], "516394380123300269594485907074283812975608688889426642145"), + TestCase([17450711516373662082, 12266023495873027824, 17081706021512517970], "5812603356047926610460197272765392220238610608713665689986"), + TestCase([10493740789275983823, 7090478780156208175, 2893210513446379807], "984508521516077779720769747676107292251302380633744113615"), + TestCase([2584946677711410572, 15582369744544450926, 10600651036904921818], "3607214625740907391200152863690596886095271299895459353996"), + TestCase([8191223326464221616, 15838770264786859451, 10448195476633736002], "3555336686841570490688168198501982767988360618443302183344"), + TestCase([9330481725652115023, 17984447776108471806, 15931644148621564667], "5421257579835065546517323313625099317184145652987724078671"), + TestCase([5834919825408647544, 18291287390831708357, 15545400078801850136], "5289825533547636872288114877966109957241807144779629060472"), + TestCase([7725628935030398936, 13217523222545559873, 6525293375752710251], "2220442274754652930479991837181424586345958361124409139160"), + TestCase([11153747151801819771, 12447701429598628384, 7358354431466140957], "2503918262582474917700425110083118534477438840011330691707"), + TestCase([1305957527465355656, 6634926787110467165, 8618539646621370010], "2932737070354268352744296521741629050767038012966002878856"), + TestCase([5697551272666427272, 9806098653662596381, 17446402411063414409], "5936703106691826260722357215905339148900071080037029998472"), + TestCase([13461627091841105866, 15779306612146539460, 1875399779845087415], "638165476008693250974186539568945174625645764897016299466"), + ]) + + internal static let fourWords = TestSuite(radix: 10, cases: [ + TestCase([8069127371757787930, 18298415571011048517, 16815374448153862577, 15664831157880175362], "98329738845668996570124208357521780017272355350396828224707284828351881091866"), + TestCase([5470742250373313138, 17521113983887669137, 1031109059281010587, 16826745550145797929], "105623193693730296505637022908493828321474575998233295842297319498067956265586"), + TestCase([7821963600184975391, 1696593353817084268, 18062377089319569726, 4419899561878296347], "27744159210101084003408741123228345882260348087436638008210479865903937724447"), + TestCase([5034162668176282620, 13810266618081868282, 678065491460384283, 7005674689622930240], "43975332751786641545687151785881018379208099070772924031466259723893919847420"), + TestCase([948109800916453930, 13254873860379351332, 9460782306108757222, 1161530252760842443], "7291043565309214047592216113421685977429724781349367031290578029129539586602"), + TestCase([15835724493698649863, 17125118148463518722, 13959435657126725002, 13380134033748730320], "83988462562950544098864456303214580453611103336990060118099235083777904234247"), + TestCase([4071443539966139976, 11664926414955986211, 16616938295452084138, 5254055772243955785], "32980242605770942006188369357622369959610697780125045082756386640312378695240"), + TestCase([13537182919290894418, 9915062231487163470, 5294088489907226107, 3571337015533456534], "22417645777855749287001476980921879614161082692816351875309530936088143706194"), + TestCase([9724782435949804194, 5610697598620232897, 7986759389249900697, 1157166139356361906], "7263649581484524992809489869886295226321246688450694700744863589918010440354"), + TestCase([3131625851484723186, 8251872111016498371, 5091559339788432642, 3939531212584346483], "24728838211123196082450064688238894776920371466824252419807721449583553632242"), + ]) + } + + // MARK: - Hex + + internal enum Hex { + + internal static let singleWord = TestSuite(radix: 16, cases: [ + TestCase([9027730909523848476], "7d48f16e65fbad1c"), + TestCase([3297038718702367055], "2dc16f3f06f6b14f"), + TestCase([10639603696146990864], "93a77730cbc64710"), + TestCase([4650451613422864026], "4089b91a6f36469a"), + TestCase([8992000964025095465], "7cca013c30af9529"), + TestCase([13147777551363676744], "b6764a05e6e31a48"), + TestCase([891205320620556160], "c5e32846d86bf80"), + TestCase([7922149813937273486], "6df121484d287a8e"), + TestCase([18280073147257698292], "fdafddacea73b7f4"), + TestCase([377816299772228753], "53e45ec4246b491"), + ]) + + internal static let twoWords = TestSuite(radix: 16, cases: [ + TestCase([2355014894934463518, 15585287516344763483], "d84a106bf60f445b20aeb191cd52941e"), + TestCase([5599482567064088057, 3189184062842169181], "2c424202150b675d4db55bba37d8edf9"), + TestCase([2846008895404346873, 3964041246558262276], "37031a82e81a1404277f0e02f62d8df9"), + TestCase([17522684300601343280, 1015224584249523628], "e16cd61676fbdacf32d148840a83d30"), + TestCase([10969847613326490834, 2072488601858021864], "1cc2f56722cb19e8983cba48987dfcd2"), + TestCase([7052321924236707018, 219889601707657665], "30d346d7f9649c161dee16cdfd404ca"), + TestCase([1724776236223714883, 16227375082796059633], "e13337a957158bf117efa2d93d265643"), + TestCase([15231695391734886515, 4978561187561123947], "45176705c520b06bd361da41ff4ff073"), + TestCase([17326254193883183180, 8332793074858625431], "73a407270dc88997f07338641287784c"), + TestCase([380499378895123004, 16203117573032797751], "e0dd0995ba8266370547ce2b4c4cf23c"), + ]) + + internal static let threeWords = TestSuite(radix: 16, cases: [ + TestCase([681052395112981620, 5524247289861906130, 2210775909268916402], "1eae40f9edf708b24caa11a433a21ed20973958b84236474"), + TestCase([14856848762854770514, 2965772954907465975, 5661557264032529616], "4e91e455de30fcd029288aca05b858f7ce2e213c1fa90752"), + TestCase([6238741308901019224, 4186391981714677073, 4712669703510828451], "4166c420658225a33a190d53b0a59d515694762a8a99ce58"), + TestCase([4080341212257558034, 14149341274818351434, 5750469562719205651], "4fcdc5999992f913c45c8eec4b52114a38a048b6c6ff9e12"), + TestCase([14875561220749857904, 4580798086887072873, 6118586556778866508], "54e9960e4448e74c3f92439704b16469ce709c1dbd5f1470"), + TestCase([2995664394837594456, 15782269881219481458, 11431982845400553019], "9ea68fd42275963bdb05e2d6c36eff722992bce538949158"), + TestCase([6995545736791051231, 7048114468200063197, 5219807130683247620], "48707aedfc6d0c0461cfeec42d5b20dd61152bc89b6dcbdf"), + TestCase([9935611390414813611, 13907368319050548696, 13881054378609025600], "c0a3696990df2240c100e5cd418785d889e261eb1ffff9ab"), + TestCase([16470394236095961112, 7479687647312861488, 5788714898313010536], "5055a587b3f55d6867cd304940f5d930e492984b39241818"), + TestCase([13614001671611405222, 1770540855717814547, 297365776674567548], "42074992f0bb57c189239870d606113bceea663e7f8d3a6"), + ]) + } +} diff --git a/Tests/BigIntTests/Helpers/StringTestCases.swift b/Tests/BigIntTests/Helpers/StringTestCases.swift new file mode 100644 index 00000000..a303ffd7 --- /dev/null +++ b/Tests/BigIntTests/Helpers/StringTestCases.swift @@ -0,0 +1,77 @@ +//===--- StringTestCases.swift --------------------------------*- swift -*-===// +// +// This source file is part of the Swift Numerics open source project +// +// Copyright (c) 2023 Apple Inc. and the Swift Numerics project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// +//===----------------------------------------------------------------------===// + +import BigIntModule + +// swiftlint:disable nesting +// swiftlint:disable number_separator +// swiftformat:disable numberFormatting + +// The actual test cases are generated by Python script. +internal enum StringTestCases { + + internal struct TestSuite { + internal let radix: Int + internal let cases: [TestCase] + } + + /// Single test case, always positive. + internal struct TestCase { + + internal typealias Word = BigIntPrototype.Word + + /// Least significant word is at index `0`. + /// Empty means `0`. + private let magnitude: [Word] + /// String representation with a certain base. + internal let string: String + + internal var isZero: Bool { + return self.magnitude.isEmpty + } + + /// Insert `_` into `self.string`. + internal var stringWithUnderscores: String { + // We could create a pseudo-random algorithm to select underscore location. + // Or we could just insert underscore after every 3rd digit. + let underscoreAfterEvery = 3 + let s = self.string + + var result = "" + result.reserveCapacity(s.count + s.count / underscoreAfterEvery) + + for (index, char) in s.enumerated() { + assert(char != "_") + result.append(char) + + // Suffix underscore is prohibited. + let shouldHaveUnderscore = index.isMultiple(of: underscoreAfterEvery) + let isLast = index == s.count - 1 + + if shouldHaveUnderscore && !isLast { + result.append("_") + } + } + + return result + } + + internal init(_ magnitude: [Word], _ string: String) { + self.magnitude = magnitude + self.string = string + } + + internal func create(sign: BigIntPrototype.Sign = .positive) -> BigInt { + let proto = BigIntPrototype(sign, magnitude: magnitude) + return proto.create() + } + } +} diff --git a/Tests/BigIntTests/Nodejs/NodeTests.generated.js b/Tests/BigIntTests/Nodejs/NodeTests.generated.js new file mode 100644 index 00000000..1fab4c6d --- /dev/null +++ b/Tests/BigIntTests/Nodejs/NodeTests.generated.js @@ -0,0 +1,334 @@ +//===--- NodeTests.generated.js -------------------------------*- swift -*-===// +// +// This source file is part of the Swift Numerics open source project +// +// Copyright (c) 2023 Apple Inc. and the Swift Numerics project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// +//===----------------------------------------------------------------------===// + +// ======================== +// === Generate numbers === +// ======================== + +// For 'int' tests we will use 2^33 range. +// If we are using tagged pointer to hide small int inside the pointer, then on +// 64bit platform Int32 is a natural choice. Using Int33 range for tests (linear +// distribution) makes it so that half of the tests are above and half below +// Int32 range. +const pow33 = 8589934592n; +const smiMax = pow33; +const smiMin = -pow33; + +/** + * Small integers. + * We will return `2 * countButNotReally + 3` values (don't ask). + * + * @param {number} countButNotReally + * @returns {bigint[]} + */ +function generateSmallInts(countButNotReally) { + const result = []; + + 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; +} + +/// 2^63 − 1 (max signed Int64) +const wordMax = 18446744073709551615n; +const wordMin = 0n; + +/** + * Big integers. + * We will return `2 * countButNotReally + 5` values (don't ask). + * + * @param {number} countButNotReally + * @returns {bigint[]} + */ +function generateBigInts(countButNotReally) { + const result = []; + + 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; +} + +// ========================= +// === Cartesian product === +// ========================= + +/** + * @param {bigint[]} lhsValues + * @param {bigint[]} rhsValues + * @returns {{lhs: bigint[], rhs: bigint[]}[]} + */ +function cartesianProduct(lhsValues, rhsValues) { + const result = []; + + for (const lhs of lhsValues) { + for (const rhs of rhsValues) { + result.push({ lhs, rhs }); + } + } + + return result; +} + +// ================ +// === Printing === +// ================ + +const smallInts = generateSmallInts(10); +const bigInts = generateBigInts(10); + +const smallSmallPairs = cartesianProduct(smallInts, smallInts); +const smallBigPairs = cartesianProduct(smallInts, bigInts); +const bigSmallPairs = cartesianProduct(bigInts, smallInts); +const bigBigPairs = cartesianProduct(bigInts, bigInts); + +/** + * @param {string} name + * @param {(value: bigint) => bigint} op + */ +function printUnaryOperationTests(name, op) { + function print(name, testFn, values, op) { + console.log(); + console.log(` func test_${name}() {`); + + for (const value of values) { + const expected = op(value); + console.log(` ${testFn}(value: "${value}", expecting: "${expected}")`); + } + + console.log(' }'); + } + + const nameLower = name.toLowerCase(); + const testFn = `self.${nameLower}Test`; + + console.log(); + console.log(` // MARK: - ${name}`); + + print(`${nameLower}_int`, testFn, smallInts, op); + print(`${nameLower}_big`, testFn, bigInts, op); +} + +/** + * @param {string} name + * @param {(lhs: bigint, rhs: bigint) => bigint} op + */ +function printBinaryOperationTests(name, op) { + function print(name, testFn, values, op) { + console.log(); + console.log(` func test_${name}() {`); + + const isDiv = name.startsWith('div') || name.startsWith('mod'); + + 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(' }'); + } + + const nameLower = name.toLowerCase(); + const testFn = `self.${nameLower}Test`; + + console.log(); + console.log(` // MARK: - ${name}`); + + print(`${nameLower}_int_int`, testFn, smallSmallPairs, op); + print(`${nameLower}_int_big`, testFn, smallBigPairs, op); + print(`${nameLower}_big_int`, testFn, bigSmallPairs, op); + print(`${nameLower}_big_big`, testFn, bigBigPairs, op); +} + +function printDivModTests() { + function print(name, testFn, values) { + console.log(); + console.log(` func test_${name}() {`); + + for (const { lhs, rhs } of values) { + if (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(' }'); + } + + const name = 'DivMod'; + const nameLower = 'divMod'; + const testFn = `self.${nameLower}Test`; + + console.log(); + console.log(` // MARK: - ${name}`); + + print(`${nameLower}_int_int`, testFn, smallSmallPairs); + print(`${nameLower}_int_big`, testFn, smallBigPairs); + print(`${nameLower}_big_int`, testFn, bigSmallPairs); + print(`${nameLower}_big_big`, testFn, bigBigPairs); +} + +const exponents = [0n, 1n, 2n, 3n, 5n, 10n]; + +function printPowerTests() { + function print(name, testFn, values) { + console.log(); + 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(' }'); + } + + const name = 'Power'; + const nameLower = 'power'; + const testFn = `self.${nameLower}Test`; + + console.log(); + console.log(` // MARK: - ${name}`); + + print(`${nameLower}_int`, testFn, smallInts); + print(`${nameLower}_big`, testFn, bigInts); +} + +/** + * + * @param {string} name + * @param {(value: bigint, count: bigint) => bigint} op + */ +function printShiftOperationTests(name, op) { + function printShiftTest(name, testFn, values, count, op) { + console.log(); + 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(' }'); + } + + const nameLower = name.toLowerCase(); + const testFn = `self.shift${name}Test`; + + const lessThanWord = 5n; + const word = 64n; + const moreThanWord = 64n + 64n - 7n; + + console.log(); + console.log(` // MARK: - Shift ${nameLower}`); + console.log(); + console.log(` // Following tests assume: assert(Word.bitWidth == 64)`); + console.log(` // Even if this is not the case then the tests should still pass.`); + + printShiftTest(`shift${name}_int_lessThanWord`, testFn, smallInts, lessThanWord, op); + printShiftTest(`shift${name}_int_word`, testFn, smallInts, word, op); + printShiftTest(`shift${name}_int_moreThanWord`, testFn, smallInts, moreThanWord, op); + + printShiftTest(`shift${name}_big_lessThanWord`, testFn, bigInts, lessThanWord, op); + printShiftTest(`shift${name}_big_word`, testFn, bigInts, word, op); + printShiftTest(`shift${name}_big_moreThanWord`, testFn, bigInts, moreThanWord, op); +} + +// ============ +// === Main === +// ============ + +console.log(`\ +//===--- NodeTests.generated.swift ----------------------------*- swift -*-===// +// +// This source file is part of the Swift Numerics open source project +// +// Copyright (c) 2023 Apple Inc. and the Swift Numerics project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// +//===----------------------------------------------------------------------===// +// Automatically generated. DO NOT EDIT! +// To regenerate: +// node NodeTests.generated.js > NodeTests.generated.swift +//===----------------------------------------------------------------------===// + +import XCTest + +// swiftlint:disable file_length +// swiftlint:disable line_length +// swiftlint:disable function_body_length + +extension NodeTests {`); + +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/Tests/BigIntTests/Nodejs/NodeTests.generated.swift b/Tests/BigIntTests/Nodejs/NodeTests.generated.swift new file mode 100644 index 00000000..4742ed35 --- /dev/null +++ b/Tests/BigIntTests/Nodejs/NodeTests.generated.swift @@ -0,0 +1,21395 @@ +//===--- NodeTests.generated.swift ----------------------------*- swift -*-===// +// +// This source file is part of the Swift Numerics open source project +// +// Copyright (c) 2023 Apple Inc. and the Swift Numerics project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// +//===----------------------------------------------------------------------===// +// Automatically generated. DO NOT EDIT! +// To regenerate: +// node NodeTests.generated.js > NodeTests.generated.swift +//===----------------------------------------------------------------------===// + +import XCTest + +// swiftlint:disable file_length +// swiftlint:disable line_length +// swiftlint:disable function_body_length + +extension NodeTests { + + // MARK: - Plus + + func test_plus_int() { + self.plusTest(value: "0", expecting: "0") + self.plusTest(value: "1", expecting: "1") + self.plusTest(value: "-1", expecting: "-1") + self.plusTest(value: "8589934592", expecting: "8589934592") + self.plusTest(value: "-8589934592", expecting: "-8589934592") + self.plusTest(value: "7730941133", expecting: "7730941133") + self.plusTest(value: "-7730941133", expecting: "-7730941133") + self.plusTest(value: "6871947674", expecting: "6871947674") + self.plusTest(value: "-6871947674", expecting: "-6871947674") + self.plusTest(value: "6012954215", expecting: "6012954215") + self.plusTest(value: "-6012954215", expecting: "-6012954215") + self.plusTest(value: "5153960756", expecting: "5153960756") + self.plusTest(value: "-5153960756", expecting: "-5153960756") + self.plusTest(value: "4294967297", expecting: "4294967297") + self.plusTest(value: "-4294967297", expecting: "-4294967297") + self.plusTest(value: "3435973838", expecting: "3435973838") + self.plusTest(value: "-3435973838", expecting: "-3435973838") + self.plusTest(value: "2576980379", expecting: "2576980379") + self.plusTest(value: "-2576980379", expecting: "-2576980379") + self.plusTest(value: "1717986920", expecting: "1717986920") + self.plusTest(value: "-1717986920", expecting: "-1717986920") + self.plusTest(value: "858993461", expecting: "858993461") + self.plusTest(value: "-858993461", expecting: "-858993461") + } + + func test_plus_big() { + 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_int() { + self.minusTest(value: "0", expecting: "0") + self.minusTest(value: "1", expecting: "-1") + self.minusTest(value: "-1", expecting: "1") + self.minusTest(value: "8589934592", expecting: "-8589934592") + self.minusTest(value: "-8589934592", expecting: "8589934592") + self.minusTest(value: "7730941133", expecting: "-7730941133") + self.minusTest(value: "-7730941133", expecting: "7730941133") + self.minusTest(value: "6871947674", expecting: "-6871947674") + self.minusTest(value: "-6871947674", expecting: "6871947674") + self.minusTest(value: "6012954215", expecting: "-6012954215") + self.minusTest(value: "-6012954215", expecting: "6012954215") + self.minusTest(value: "5153960756", expecting: "-5153960756") + self.minusTest(value: "-5153960756", expecting: "5153960756") + self.minusTest(value: "4294967297", expecting: "-4294967297") + self.minusTest(value: "-4294967297", expecting: "4294967297") + self.minusTest(value: "3435973838", expecting: "-3435973838") + self.minusTest(value: "-3435973838", expecting: "3435973838") + self.minusTest(value: "2576980379", expecting: "-2576980379") + self.minusTest(value: "-2576980379", expecting: "2576980379") + self.minusTest(value: "1717986920", expecting: "-1717986920") + self.minusTest(value: "-1717986920", expecting: "1717986920") + self.minusTest(value: "858993461", expecting: "-858993461") + self.minusTest(value: "-858993461", expecting: "858993461") + } + + func test_minus_big() { + 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_int() { + self.invertTest(value: "0", expecting: "-1") + self.invertTest(value: "1", expecting: "-2") + self.invertTest(value: "-1", expecting: "0") + self.invertTest(value: "8589934592", expecting: "-8589934593") + self.invertTest(value: "-8589934592", expecting: "8589934591") + self.invertTest(value: "7730941133", expecting: "-7730941134") + self.invertTest(value: "-7730941133", expecting: "7730941132") + self.invertTest(value: "6871947674", expecting: "-6871947675") + self.invertTest(value: "-6871947674", expecting: "6871947673") + self.invertTest(value: "6012954215", expecting: "-6012954216") + self.invertTest(value: "-6012954215", expecting: "6012954214") + self.invertTest(value: "5153960756", expecting: "-5153960757") + self.invertTest(value: "-5153960756", expecting: "5153960755") + self.invertTest(value: "4294967297", expecting: "-4294967298") + self.invertTest(value: "-4294967297", expecting: "4294967296") + self.invertTest(value: "3435973838", expecting: "-3435973839") + self.invertTest(value: "-3435973838", expecting: "3435973837") + self.invertTest(value: "2576980379", expecting: "-2576980380") + self.invertTest(value: "-2576980379", expecting: "2576980378") + self.invertTest(value: "1717986920", expecting: "-1717986921") + self.invertTest(value: "-1717986920", expecting: "1717986919") + self.invertTest(value: "858993461", expecting: "-858993462") + self.invertTest(value: "-858993461", expecting: "858993460") + } + + func test_invert_big() { + 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_int_int() { + 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: "8589934592", expecting: "8589934592") + self.addTest(lhs: "0", rhs: "-8589934592", expecting: "-8589934592") + self.addTest(lhs: "0", rhs: "7730941133", expecting: "7730941133") + self.addTest(lhs: "0", rhs: "-7730941133", expecting: "-7730941133") + self.addTest(lhs: "0", rhs: "6871947674", expecting: "6871947674") + self.addTest(lhs: "0", rhs: "-6871947674", expecting: "-6871947674") + self.addTest(lhs: "0", rhs: "6012954215", expecting: "6012954215") + self.addTest(lhs: "0", rhs: "-6012954215", expecting: "-6012954215") + self.addTest(lhs: "0", rhs: "5153960756", expecting: "5153960756") + self.addTest(lhs: "0", rhs: "-5153960756", expecting: "-5153960756") + self.addTest(lhs: "0", rhs: "4294967297", expecting: "4294967297") + self.addTest(lhs: "0", rhs: "-4294967297", expecting: "-4294967297") + self.addTest(lhs: "0", rhs: "3435973838", expecting: "3435973838") + self.addTest(lhs: "0", rhs: "-3435973838", expecting: "-3435973838") + self.addTest(lhs: "0", rhs: "2576980379", expecting: "2576980379") + self.addTest(lhs: "0", rhs: "-2576980379", expecting: "-2576980379") + self.addTest(lhs: "0", rhs: "1717986920", expecting: "1717986920") + self.addTest(lhs: "0", rhs: "-1717986920", expecting: "-1717986920") + self.addTest(lhs: "0", rhs: "858993461", expecting: "858993461") + self.addTest(lhs: "0", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "8589934593") + self.addTest(lhs: "1", rhs: "-8589934592", expecting: "-8589934591") + self.addTest(lhs: "1", rhs: "7730941133", expecting: "7730941134") + self.addTest(lhs: "1", rhs: "-7730941133", expecting: "-7730941132") + self.addTest(lhs: "1", rhs: "6871947674", expecting: "6871947675") + self.addTest(lhs: "1", rhs: "-6871947674", expecting: "-6871947673") + self.addTest(lhs: "1", rhs: "6012954215", expecting: "6012954216") + self.addTest(lhs: "1", rhs: "-6012954215", expecting: "-6012954214") + self.addTest(lhs: "1", rhs: "5153960756", expecting: "5153960757") + self.addTest(lhs: "1", rhs: "-5153960756", expecting: "-5153960755") + self.addTest(lhs: "1", rhs: "4294967297", expecting: "4294967298") + self.addTest(lhs: "1", rhs: "-4294967297", expecting: "-4294967296") + self.addTest(lhs: "1", rhs: "3435973838", expecting: "3435973839") + self.addTest(lhs: "1", rhs: "-3435973838", expecting: "-3435973837") + self.addTest(lhs: "1", rhs: "2576980379", expecting: "2576980380") + self.addTest(lhs: "1", rhs: "-2576980379", expecting: "-2576980378") + self.addTest(lhs: "1", rhs: "1717986920", expecting: "1717986921") + self.addTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986919") + self.addTest(lhs: "1", rhs: "858993461", expecting: "858993462") + self.addTest(lhs: "1", rhs: "-858993461", expecting: "-858993460") + 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: "8589934592", expecting: "8589934591") + self.addTest(lhs: "-1", rhs: "-8589934592", expecting: "-8589934593") + self.addTest(lhs: "-1", rhs: "7730941133", expecting: "7730941132") + self.addTest(lhs: "-1", rhs: "-7730941133", expecting: "-7730941134") + self.addTest(lhs: "-1", rhs: "6871947674", expecting: "6871947673") + self.addTest(lhs: "-1", rhs: "-6871947674", expecting: "-6871947675") + self.addTest(lhs: "-1", rhs: "6012954215", expecting: "6012954214") + self.addTest(lhs: "-1", rhs: "-6012954215", expecting: "-6012954216") + self.addTest(lhs: "-1", rhs: "5153960756", expecting: "5153960755") + self.addTest(lhs: "-1", rhs: "-5153960756", expecting: "-5153960757") + self.addTest(lhs: "-1", rhs: "4294967297", expecting: "4294967296") + self.addTest(lhs: "-1", rhs: "-4294967297", expecting: "-4294967298") + self.addTest(lhs: "-1", rhs: "3435973838", expecting: "3435973837") + self.addTest(lhs: "-1", rhs: "-3435973838", expecting: "-3435973839") + self.addTest(lhs: "-1", rhs: "2576980379", expecting: "2576980378") + self.addTest(lhs: "-1", rhs: "-2576980379", expecting: "-2576980380") + self.addTest(lhs: "-1", rhs: "1717986920", expecting: "1717986919") + self.addTest(lhs: "-1", rhs: "-1717986920", expecting: "-1717986921") + self.addTest(lhs: "-1", rhs: "858993461", expecting: "858993460") + self.addTest(lhs: "-1", rhs: "-858993461", expecting: "-858993462") + self.addTest(lhs: "8589934592", rhs: "0", expecting: "8589934592") + self.addTest(lhs: "8589934592", rhs: "1", expecting: "8589934593") + self.addTest(lhs: "8589934592", rhs: "-1", expecting: "8589934591") + self.addTest(lhs: "8589934592", rhs: "8589934592", expecting: "17179869184") + self.addTest(lhs: "8589934592", rhs: "-8589934592", expecting: "0") + self.addTest(lhs: "8589934592", rhs: "7730941133", expecting: "16320875725") + self.addTest(lhs: "8589934592", rhs: "-7730941133", expecting: "858993459") + self.addTest(lhs: "8589934592", rhs: "6871947674", expecting: "15461882266") + self.addTest(lhs: "8589934592", rhs: "-6871947674", expecting: "1717986918") + self.addTest(lhs: "8589934592", rhs: "6012954215", expecting: "14602888807") + self.addTest(lhs: "8589934592", rhs: "-6012954215", expecting: "2576980377") + self.addTest(lhs: "8589934592", rhs: "5153960756", expecting: "13743895348") + self.addTest(lhs: "8589934592", rhs: "-5153960756", expecting: "3435973836") + self.addTest(lhs: "8589934592", rhs: "4294967297", expecting: "12884901889") + self.addTest(lhs: "8589934592", rhs: "-4294967297", expecting: "4294967295") + self.addTest(lhs: "8589934592", rhs: "3435973838", expecting: "12025908430") + self.addTest(lhs: "8589934592", rhs: "-3435973838", expecting: "5153960754") + self.addTest(lhs: "8589934592", rhs: "2576980379", expecting: "11166914971") + self.addTest(lhs: "8589934592", rhs: "-2576980379", expecting: "6012954213") + self.addTest(lhs: "8589934592", rhs: "1717986920", expecting: "10307921512") + self.addTest(lhs: "8589934592", rhs: "-1717986920", expecting: "6871947672") + self.addTest(lhs: "8589934592", rhs: "858993461", expecting: "9448928053") + self.addTest(lhs: "8589934592", rhs: "-858993461", expecting: "7730941131") + self.addTest(lhs: "-8589934592", rhs: "0", expecting: "-8589934592") + self.addTest(lhs: "-8589934592", rhs: "1", expecting: "-8589934591") + self.addTest(lhs: "-8589934592", rhs: "-1", expecting: "-8589934593") + self.addTest(lhs: "-8589934592", rhs: "8589934592", expecting: "0") + self.addTest(lhs: "-8589934592", rhs: "-8589934592", expecting: "-17179869184") + self.addTest(lhs: "-8589934592", rhs: "7730941133", expecting: "-858993459") + self.addTest(lhs: "-8589934592", rhs: "-7730941133", expecting: "-16320875725") + self.addTest(lhs: "-8589934592", rhs: "6871947674", expecting: "-1717986918") + self.addTest(lhs: "-8589934592", rhs: "-6871947674", expecting: "-15461882266") + self.addTest(lhs: "-8589934592", rhs: "6012954215", expecting: "-2576980377") + self.addTest(lhs: "-8589934592", rhs: "-6012954215", expecting: "-14602888807") + self.addTest(lhs: "-8589934592", rhs: "5153960756", expecting: "-3435973836") + self.addTest(lhs: "-8589934592", rhs: "-5153960756", expecting: "-13743895348") + self.addTest(lhs: "-8589934592", rhs: "4294967297", expecting: "-4294967295") + self.addTest(lhs: "-8589934592", rhs: "-4294967297", expecting: "-12884901889") + self.addTest(lhs: "-8589934592", rhs: "3435973838", expecting: "-5153960754") + self.addTest(lhs: "-8589934592", rhs: "-3435973838", expecting: "-12025908430") + self.addTest(lhs: "-8589934592", rhs: "2576980379", expecting: "-6012954213") + self.addTest(lhs: "-8589934592", rhs: "-2576980379", expecting: "-11166914971") + self.addTest(lhs: "-8589934592", rhs: "1717986920", expecting: "-6871947672") + self.addTest(lhs: "-8589934592", rhs: "-1717986920", expecting: "-10307921512") + self.addTest(lhs: "-8589934592", rhs: "858993461", expecting: "-7730941131") + self.addTest(lhs: "-8589934592", rhs: "-858993461", expecting: "-9448928053") + self.addTest(lhs: "7730941133", rhs: "0", expecting: "7730941133") + self.addTest(lhs: "7730941133", rhs: "1", expecting: "7730941134") + self.addTest(lhs: "7730941133", rhs: "-1", expecting: "7730941132") + self.addTest(lhs: "7730941133", rhs: "8589934592", expecting: "16320875725") + self.addTest(lhs: "7730941133", rhs: "-8589934592", expecting: "-858993459") + self.addTest(lhs: "7730941133", rhs: "7730941133", expecting: "15461882266") + self.addTest(lhs: "7730941133", rhs: "-7730941133", expecting: "0") + self.addTest(lhs: "7730941133", rhs: "6871947674", expecting: "14602888807") + self.addTest(lhs: "7730941133", rhs: "-6871947674", expecting: "858993459") + self.addTest(lhs: "7730941133", rhs: "6012954215", expecting: "13743895348") + self.addTest(lhs: "7730941133", rhs: "-6012954215", expecting: "1717986918") + self.addTest(lhs: "7730941133", rhs: "5153960756", expecting: "12884901889") + self.addTest(lhs: "7730941133", rhs: "-5153960756", expecting: "2576980377") + self.addTest(lhs: "7730941133", rhs: "4294967297", expecting: "12025908430") + self.addTest(lhs: "7730941133", rhs: "-4294967297", expecting: "3435973836") + self.addTest(lhs: "7730941133", rhs: "3435973838", expecting: "11166914971") + self.addTest(lhs: "7730941133", rhs: "-3435973838", expecting: "4294967295") + self.addTest(lhs: "7730941133", rhs: "2576980379", expecting: "10307921512") + self.addTest(lhs: "7730941133", rhs: "-2576980379", expecting: "5153960754") + self.addTest(lhs: "7730941133", rhs: "1717986920", expecting: "9448928053") + self.addTest(lhs: "7730941133", rhs: "-1717986920", expecting: "6012954213") + self.addTest(lhs: "7730941133", rhs: "858993461", expecting: "8589934594") + self.addTest(lhs: "7730941133", rhs: "-858993461", expecting: "6871947672") + self.addTest(lhs: "-7730941133", rhs: "0", expecting: "-7730941133") + self.addTest(lhs: "-7730941133", rhs: "1", expecting: "-7730941132") + self.addTest(lhs: "-7730941133", rhs: "-1", expecting: "-7730941134") + self.addTest(lhs: "-7730941133", rhs: "8589934592", expecting: "858993459") + self.addTest(lhs: "-7730941133", rhs: "-8589934592", expecting: "-16320875725") + self.addTest(lhs: "-7730941133", rhs: "7730941133", expecting: "0") + self.addTest(lhs: "-7730941133", rhs: "-7730941133", expecting: "-15461882266") + self.addTest(lhs: "-7730941133", rhs: "6871947674", expecting: "-858993459") + self.addTest(lhs: "-7730941133", rhs: "-6871947674", expecting: "-14602888807") + self.addTest(lhs: "-7730941133", rhs: "6012954215", expecting: "-1717986918") + self.addTest(lhs: "-7730941133", rhs: "-6012954215", expecting: "-13743895348") + self.addTest(lhs: "-7730941133", rhs: "5153960756", expecting: "-2576980377") + self.addTest(lhs: "-7730941133", rhs: "-5153960756", expecting: "-12884901889") + self.addTest(lhs: "-7730941133", rhs: "4294967297", expecting: "-3435973836") + self.addTest(lhs: "-7730941133", rhs: "-4294967297", expecting: "-12025908430") + self.addTest(lhs: "-7730941133", rhs: "3435973838", expecting: "-4294967295") + self.addTest(lhs: "-7730941133", rhs: "-3435973838", expecting: "-11166914971") + self.addTest(lhs: "-7730941133", rhs: "2576980379", expecting: "-5153960754") + self.addTest(lhs: "-7730941133", rhs: "-2576980379", expecting: "-10307921512") + self.addTest(lhs: "-7730941133", rhs: "1717986920", expecting: "-6012954213") + self.addTest(lhs: "-7730941133", rhs: "-1717986920", expecting: "-9448928053") + self.addTest(lhs: "-7730941133", rhs: "858993461", expecting: "-6871947672") + self.addTest(lhs: "-7730941133", rhs: "-858993461", expecting: "-8589934594") + self.addTest(lhs: "6871947674", rhs: "0", expecting: "6871947674") + self.addTest(lhs: "6871947674", rhs: "1", expecting: "6871947675") + self.addTest(lhs: "6871947674", rhs: "-1", expecting: "6871947673") + self.addTest(lhs: "6871947674", rhs: "8589934592", expecting: "15461882266") + self.addTest(lhs: "6871947674", rhs: "-8589934592", expecting: "-1717986918") + self.addTest(lhs: "6871947674", rhs: "7730941133", expecting: "14602888807") + self.addTest(lhs: "6871947674", rhs: "-7730941133", expecting: "-858993459") + self.addTest(lhs: "6871947674", rhs: "6871947674", expecting: "13743895348") + self.addTest(lhs: "6871947674", rhs: "-6871947674", expecting: "0") + self.addTest(lhs: "6871947674", rhs: "6012954215", expecting: "12884901889") + self.addTest(lhs: "6871947674", rhs: "-6012954215", expecting: "858993459") + self.addTest(lhs: "6871947674", rhs: "5153960756", expecting: "12025908430") + self.addTest(lhs: "6871947674", rhs: "-5153960756", expecting: "1717986918") + self.addTest(lhs: "6871947674", rhs: "4294967297", expecting: "11166914971") + self.addTest(lhs: "6871947674", rhs: "-4294967297", expecting: "2576980377") + self.addTest(lhs: "6871947674", rhs: "3435973838", expecting: "10307921512") + self.addTest(lhs: "6871947674", rhs: "-3435973838", expecting: "3435973836") + self.addTest(lhs: "6871947674", rhs: "2576980379", expecting: "9448928053") + self.addTest(lhs: "6871947674", rhs: "-2576980379", expecting: "4294967295") + self.addTest(lhs: "6871947674", rhs: "1717986920", expecting: "8589934594") + self.addTest(lhs: "6871947674", rhs: "-1717986920", expecting: "5153960754") + self.addTest(lhs: "6871947674", rhs: "858993461", expecting: "7730941135") + self.addTest(lhs: "6871947674", rhs: "-858993461", expecting: "6012954213") + self.addTest(lhs: "-6871947674", rhs: "0", expecting: "-6871947674") + self.addTest(lhs: "-6871947674", rhs: "1", expecting: "-6871947673") + self.addTest(lhs: "-6871947674", rhs: "-1", expecting: "-6871947675") + self.addTest(lhs: "-6871947674", rhs: "8589934592", expecting: "1717986918") + self.addTest(lhs: "-6871947674", rhs: "-8589934592", expecting: "-15461882266") + self.addTest(lhs: "-6871947674", rhs: "7730941133", expecting: "858993459") + self.addTest(lhs: "-6871947674", rhs: "-7730941133", expecting: "-14602888807") + self.addTest(lhs: "-6871947674", rhs: "6871947674", expecting: "0") + self.addTest(lhs: "-6871947674", rhs: "-6871947674", expecting: "-13743895348") + self.addTest(lhs: "-6871947674", rhs: "6012954215", expecting: "-858993459") + self.addTest(lhs: "-6871947674", rhs: "-6012954215", expecting: "-12884901889") + self.addTest(lhs: "-6871947674", rhs: "5153960756", expecting: "-1717986918") + self.addTest(lhs: "-6871947674", rhs: "-5153960756", expecting: "-12025908430") + self.addTest(lhs: "-6871947674", rhs: "4294967297", expecting: "-2576980377") + self.addTest(lhs: "-6871947674", rhs: "-4294967297", expecting: "-11166914971") + self.addTest(lhs: "-6871947674", rhs: "3435973838", expecting: "-3435973836") + self.addTest(lhs: "-6871947674", rhs: "-3435973838", expecting: "-10307921512") + self.addTest(lhs: "-6871947674", rhs: "2576980379", expecting: "-4294967295") + self.addTest(lhs: "-6871947674", rhs: "-2576980379", expecting: "-9448928053") + self.addTest(lhs: "-6871947674", rhs: "1717986920", expecting: "-5153960754") + self.addTest(lhs: "-6871947674", rhs: "-1717986920", expecting: "-8589934594") + self.addTest(lhs: "-6871947674", rhs: "858993461", expecting: "-6012954213") + self.addTest(lhs: "-6871947674", rhs: "-858993461", expecting: "-7730941135") + self.addTest(lhs: "6012954215", rhs: "0", expecting: "6012954215") + self.addTest(lhs: "6012954215", rhs: "1", expecting: "6012954216") + self.addTest(lhs: "6012954215", rhs: "-1", expecting: "6012954214") + self.addTest(lhs: "6012954215", rhs: "8589934592", expecting: "14602888807") + self.addTest(lhs: "6012954215", rhs: "-8589934592", expecting: "-2576980377") + self.addTest(lhs: "6012954215", rhs: "7730941133", expecting: "13743895348") + self.addTest(lhs: "6012954215", rhs: "-7730941133", expecting: "-1717986918") + self.addTest(lhs: "6012954215", rhs: "6871947674", expecting: "12884901889") + self.addTest(lhs: "6012954215", rhs: "-6871947674", expecting: "-858993459") + self.addTest(lhs: "6012954215", rhs: "6012954215", expecting: "12025908430") + self.addTest(lhs: "6012954215", rhs: "-6012954215", expecting: "0") + self.addTest(lhs: "6012954215", rhs: "5153960756", expecting: "11166914971") + self.addTest(lhs: "6012954215", rhs: "-5153960756", expecting: "858993459") + self.addTest(lhs: "6012954215", rhs: "4294967297", expecting: "10307921512") + self.addTest(lhs: "6012954215", rhs: "-4294967297", expecting: "1717986918") + self.addTest(lhs: "6012954215", rhs: "3435973838", expecting: "9448928053") + self.addTest(lhs: "6012954215", rhs: "-3435973838", expecting: "2576980377") + self.addTest(lhs: "6012954215", rhs: "2576980379", expecting: "8589934594") + self.addTest(lhs: "6012954215", rhs: "-2576980379", expecting: "3435973836") + self.addTest(lhs: "6012954215", rhs: "1717986920", expecting: "7730941135") + self.addTest(lhs: "6012954215", rhs: "-1717986920", expecting: "4294967295") + self.addTest(lhs: "6012954215", rhs: "858993461", expecting: "6871947676") + self.addTest(lhs: "6012954215", rhs: "-858993461", expecting: "5153960754") + self.addTest(lhs: "-6012954215", rhs: "0", expecting: "-6012954215") + self.addTest(lhs: "-6012954215", rhs: "1", expecting: "-6012954214") + self.addTest(lhs: "-6012954215", rhs: "-1", expecting: "-6012954216") + self.addTest(lhs: "-6012954215", rhs: "8589934592", expecting: "2576980377") + self.addTest(lhs: "-6012954215", rhs: "-8589934592", expecting: "-14602888807") + self.addTest(lhs: "-6012954215", rhs: "7730941133", expecting: "1717986918") + self.addTest(lhs: "-6012954215", rhs: "-7730941133", expecting: "-13743895348") + self.addTest(lhs: "-6012954215", rhs: "6871947674", expecting: "858993459") + self.addTest(lhs: "-6012954215", rhs: "-6871947674", expecting: "-12884901889") + self.addTest(lhs: "-6012954215", rhs: "6012954215", expecting: "0") + self.addTest(lhs: "-6012954215", rhs: "-6012954215", expecting: "-12025908430") + self.addTest(lhs: "-6012954215", rhs: "5153960756", expecting: "-858993459") + self.addTest(lhs: "-6012954215", rhs: "-5153960756", expecting: "-11166914971") + self.addTest(lhs: "-6012954215", rhs: "4294967297", expecting: "-1717986918") + self.addTest(lhs: "-6012954215", rhs: "-4294967297", expecting: "-10307921512") + self.addTest(lhs: "-6012954215", rhs: "3435973838", expecting: "-2576980377") + self.addTest(lhs: "-6012954215", rhs: "-3435973838", expecting: "-9448928053") + self.addTest(lhs: "-6012954215", rhs: "2576980379", expecting: "-3435973836") + self.addTest(lhs: "-6012954215", rhs: "-2576980379", expecting: "-8589934594") + self.addTest(lhs: "-6012954215", rhs: "1717986920", expecting: "-4294967295") + self.addTest(lhs: "-6012954215", rhs: "-1717986920", expecting: "-7730941135") + self.addTest(lhs: "-6012954215", rhs: "858993461", expecting: "-5153960754") + self.addTest(lhs: "-6012954215", rhs: "-858993461", expecting: "-6871947676") + self.addTest(lhs: "5153960756", rhs: "0", expecting: "5153960756") + self.addTest(lhs: "5153960756", rhs: "1", expecting: "5153960757") + self.addTest(lhs: "5153960756", rhs: "-1", expecting: "5153960755") + self.addTest(lhs: "5153960756", rhs: "8589934592", expecting: "13743895348") + self.addTest(lhs: "5153960756", rhs: "-8589934592", expecting: "-3435973836") + self.addTest(lhs: "5153960756", rhs: "7730941133", expecting: "12884901889") + self.addTest(lhs: "5153960756", rhs: "-7730941133", expecting: "-2576980377") + self.addTest(lhs: "5153960756", rhs: "6871947674", expecting: "12025908430") + self.addTest(lhs: "5153960756", rhs: "-6871947674", expecting: "-1717986918") + self.addTest(lhs: "5153960756", rhs: "6012954215", expecting: "11166914971") + self.addTest(lhs: "5153960756", rhs: "-6012954215", expecting: "-858993459") + self.addTest(lhs: "5153960756", rhs: "5153960756", expecting: "10307921512") + self.addTest(lhs: "5153960756", rhs: "-5153960756", expecting: "0") + self.addTest(lhs: "5153960756", rhs: "4294967297", expecting: "9448928053") + self.addTest(lhs: "5153960756", rhs: "-4294967297", expecting: "858993459") + self.addTest(lhs: "5153960756", rhs: "3435973838", expecting: "8589934594") + self.addTest(lhs: "5153960756", rhs: "-3435973838", expecting: "1717986918") + self.addTest(lhs: "5153960756", rhs: "2576980379", expecting: "7730941135") + self.addTest(lhs: "5153960756", rhs: "-2576980379", expecting: "2576980377") + self.addTest(lhs: "5153960756", rhs: "1717986920", expecting: "6871947676") + self.addTest(lhs: "5153960756", rhs: "-1717986920", expecting: "3435973836") + self.addTest(lhs: "5153960756", rhs: "858993461", expecting: "6012954217") + self.addTest(lhs: "5153960756", rhs: "-858993461", expecting: "4294967295") + self.addTest(lhs: "-5153960756", rhs: "0", expecting: "-5153960756") + self.addTest(lhs: "-5153960756", rhs: "1", expecting: "-5153960755") + self.addTest(lhs: "-5153960756", rhs: "-1", expecting: "-5153960757") + self.addTest(lhs: "-5153960756", rhs: "8589934592", expecting: "3435973836") + self.addTest(lhs: "-5153960756", rhs: "-8589934592", expecting: "-13743895348") + self.addTest(lhs: "-5153960756", rhs: "7730941133", expecting: "2576980377") + self.addTest(lhs: "-5153960756", rhs: "-7730941133", expecting: "-12884901889") + self.addTest(lhs: "-5153960756", rhs: "6871947674", expecting: "1717986918") + self.addTest(lhs: "-5153960756", rhs: "-6871947674", expecting: "-12025908430") + self.addTest(lhs: "-5153960756", rhs: "6012954215", expecting: "858993459") + self.addTest(lhs: "-5153960756", rhs: "-6012954215", expecting: "-11166914971") + self.addTest(lhs: "-5153960756", rhs: "5153960756", expecting: "0") + self.addTest(lhs: "-5153960756", rhs: "-5153960756", expecting: "-10307921512") + self.addTest(lhs: "-5153960756", rhs: "4294967297", expecting: "-858993459") + self.addTest(lhs: "-5153960756", rhs: "-4294967297", expecting: "-9448928053") + self.addTest(lhs: "-5153960756", rhs: "3435973838", expecting: "-1717986918") + self.addTest(lhs: "-5153960756", rhs: "-3435973838", expecting: "-8589934594") + self.addTest(lhs: "-5153960756", rhs: "2576980379", expecting: "-2576980377") + self.addTest(lhs: "-5153960756", rhs: "-2576980379", expecting: "-7730941135") + self.addTest(lhs: "-5153960756", rhs: "1717986920", expecting: "-3435973836") + self.addTest(lhs: "-5153960756", rhs: "-1717986920", expecting: "-6871947676") + self.addTest(lhs: "-5153960756", rhs: "858993461", expecting: "-4294967295") + self.addTest(lhs: "-5153960756", rhs: "-858993461", expecting: "-6012954217") + self.addTest(lhs: "4294967297", rhs: "0", expecting: "4294967297") + self.addTest(lhs: "4294967297", rhs: "1", expecting: "4294967298") + self.addTest(lhs: "4294967297", rhs: "-1", expecting: "4294967296") + self.addTest(lhs: "4294967297", rhs: "8589934592", expecting: "12884901889") + self.addTest(lhs: "4294967297", rhs: "-8589934592", expecting: "-4294967295") + self.addTest(lhs: "4294967297", rhs: "7730941133", expecting: "12025908430") + self.addTest(lhs: "4294967297", rhs: "-7730941133", expecting: "-3435973836") + self.addTest(lhs: "4294967297", rhs: "6871947674", expecting: "11166914971") + self.addTest(lhs: "4294967297", rhs: "-6871947674", expecting: "-2576980377") + self.addTest(lhs: "4294967297", rhs: "6012954215", expecting: "10307921512") + self.addTest(lhs: "4294967297", rhs: "-6012954215", expecting: "-1717986918") + self.addTest(lhs: "4294967297", rhs: "5153960756", expecting: "9448928053") + self.addTest(lhs: "4294967297", rhs: "-5153960756", expecting: "-858993459") + self.addTest(lhs: "4294967297", rhs: "4294967297", expecting: "8589934594") + self.addTest(lhs: "4294967297", rhs: "-4294967297", expecting: "0") + self.addTest(lhs: "4294967297", rhs: "3435973838", expecting: "7730941135") + self.addTest(lhs: "4294967297", rhs: "-3435973838", expecting: "858993459") + self.addTest(lhs: "4294967297", rhs: "2576980379", expecting: "6871947676") + self.addTest(lhs: "4294967297", rhs: "-2576980379", expecting: "1717986918") + self.addTest(lhs: "4294967297", rhs: "1717986920", expecting: "6012954217") + self.addTest(lhs: "4294967297", rhs: "-1717986920", expecting: "2576980377") + self.addTest(lhs: "4294967297", rhs: "858993461", expecting: "5153960758") + self.addTest(lhs: "4294967297", rhs: "-858993461", expecting: "3435973836") + self.addTest(lhs: "-4294967297", rhs: "0", expecting: "-4294967297") + self.addTest(lhs: "-4294967297", rhs: "1", expecting: "-4294967296") + self.addTest(lhs: "-4294967297", rhs: "-1", expecting: "-4294967298") + self.addTest(lhs: "-4294967297", rhs: "8589934592", expecting: "4294967295") + self.addTest(lhs: "-4294967297", rhs: "-8589934592", expecting: "-12884901889") + self.addTest(lhs: "-4294967297", rhs: "7730941133", expecting: "3435973836") + self.addTest(lhs: "-4294967297", rhs: "-7730941133", expecting: "-12025908430") + self.addTest(lhs: "-4294967297", rhs: "6871947674", expecting: "2576980377") + self.addTest(lhs: "-4294967297", rhs: "-6871947674", expecting: "-11166914971") + self.addTest(lhs: "-4294967297", rhs: "6012954215", expecting: "1717986918") + self.addTest(lhs: "-4294967297", rhs: "-6012954215", expecting: "-10307921512") + self.addTest(lhs: "-4294967297", rhs: "5153960756", expecting: "858993459") + self.addTest(lhs: "-4294967297", rhs: "-5153960756", expecting: "-9448928053") + self.addTest(lhs: "-4294967297", rhs: "4294967297", expecting: "0") + self.addTest(lhs: "-4294967297", rhs: "-4294967297", expecting: "-8589934594") + self.addTest(lhs: "-4294967297", rhs: "3435973838", expecting: "-858993459") + self.addTest(lhs: "-4294967297", rhs: "-3435973838", expecting: "-7730941135") + self.addTest(lhs: "-4294967297", rhs: "2576980379", expecting: "-1717986918") + self.addTest(lhs: "-4294967297", rhs: "-2576980379", expecting: "-6871947676") + self.addTest(lhs: "-4294967297", rhs: "1717986920", expecting: "-2576980377") + self.addTest(lhs: "-4294967297", rhs: "-1717986920", expecting: "-6012954217") + self.addTest(lhs: "-4294967297", rhs: "858993461", expecting: "-3435973836") + self.addTest(lhs: "-4294967297", rhs: "-858993461", expecting: "-5153960758") + self.addTest(lhs: "3435973838", rhs: "0", expecting: "3435973838") + self.addTest(lhs: "3435973838", rhs: "1", expecting: "3435973839") + self.addTest(lhs: "3435973838", rhs: "-1", expecting: "3435973837") + self.addTest(lhs: "3435973838", rhs: "8589934592", expecting: "12025908430") + self.addTest(lhs: "3435973838", rhs: "-8589934592", expecting: "-5153960754") + self.addTest(lhs: "3435973838", rhs: "7730941133", expecting: "11166914971") + self.addTest(lhs: "3435973838", rhs: "-7730941133", expecting: "-4294967295") + self.addTest(lhs: "3435973838", rhs: "6871947674", expecting: "10307921512") + self.addTest(lhs: "3435973838", rhs: "-6871947674", expecting: "-3435973836") + self.addTest(lhs: "3435973838", rhs: "6012954215", expecting: "9448928053") + self.addTest(lhs: "3435973838", rhs: "-6012954215", expecting: "-2576980377") + self.addTest(lhs: "3435973838", rhs: "5153960756", expecting: "8589934594") + self.addTest(lhs: "3435973838", rhs: "-5153960756", expecting: "-1717986918") + self.addTest(lhs: "3435973838", rhs: "4294967297", expecting: "7730941135") + self.addTest(lhs: "3435973838", rhs: "-4294967297", expecting: "-858993459") + self.addTest(lhs: "3435973838", rhs: "3435973838", expecting: "6871947676") + self.addTest(lhs: "3435973838", rhs: "-3435973838", expecting: "0") + self.addTest(lhs: "3435973838", rhs: "2576980379", expecting: "6012954217") + self.addTest(lhs: "3435973838", rhs: "-2576980379", expecting: "858993459") + self.addTest(lhs: "3435973838", rhs: "1717986920", expecting: "5153960758") + self.addTest(lhs: "3435973838", rhs: "-1717986920", expecting: "1717986918") + self.addTest(lhs: "3435973838", rhs: "858993461", expecting: "4294967299") + self.addTest(lhs: "3435973838", rhs: "-858993461", expecting: "2576980377") + self.addTest(lhs: "-3435973838", rhs: "0", expecting: "-3435973838") + self.addTest(lhs: "-3435973838", rhs: "1", expecting: "-3435973837") + self.addTest(lhs: "-3435973838", rhs: "-1", expecting: "-3435973839") + self.addTest(lhs: "-3435973838", rhs: "8589934592", expecting: "5153960754") + self.addTest(lhs: "-3435973838", rhs: "-8589934592", expecting: "-12025908430") + self.addTest(lhs: "-3435973838", rhs: "7730941133", expecting: "4294967295") + self.addTest(lhs: "-3435973838", rhs: "-7730941133", expecting: "-11166914971") + self.addTest(lhs: "-3435973838", rhs: "6871947674", expecting: "3435973836") + self.addTest(lhs: "-3435973838", rhs: "-6871947674", expecting: "-10307921512") + self.addTest(lhs: "-3435973838", rhs: "6012954215", expecting: "2576980377") + self.addTest(lhs: "-3435973838", rhs: "-6012954215", expecting: "-9448928053") + self.addTest(lhs: "-3435973838", rhs: "5153960756", expecting: "1717986918") + self.addTest(lhs: "-3435973838", rhs: "-5153960756", expecting: "-8589934594") + self.addTest(lhs: "-3435973838", rhs: "4294967297", expecting: "858993459") + self.addTest(lhs: "-3435973838", rhs: "-4294967297", expecting: "-7730941135") + self.addTest(lhs: "-3435973838", rhs: "3435973838", expecting: "0") + self.addTest(lhs: "-3435973838", rhs: "-3435973838", expecting: "-6871947676") + self.addTest(lhs: "-3435973838", rhs: "2576980379", expecting: "-858993459") + self.addTest(lhs: "-3435973838", rhs: "-2576980379", expecting: "-6012954217") + self.addTest(lhs: "-3435973838", rhs: "1717986920", expecting: "-1717986918") + self.addTest(lhs: "-3435973838", rhs: "-1717986920", expecting: "-5153960758") + self.addTest(lhs: "-3435973838", rhs: "858993461", expecting: "-2576980377") + self.addTest(lhs: "-3435973838", rhs: "-858993461", expecting: "-4294967299") + self.addTest(lhs: "2576980379", rhs: "0", expecting: "2576980379") + self.addTest(lhs: "2576980379", rhs: "1", expecting: "2576980380") + self.addTest(lhs: "2576980379", rhs: "-1", expecting: "2576980378") + self.addTest(lhs: "2576980379", rhs: "8589934592", expecting: "11166914971") + self.addTest(lhs: "2576980379", rhs: "-8589934592", expecting: "-6012954213") + self.addTest(lhs: "2576980379", rhs: "7730941133", expecting: "10307921512") + self.addTest(lhs: "2576980379", rhs: "-7730941133", expecting: "-5153960754") + self.addTest(lhs: "2576980379", rhs: "6871947674", expecting: "9448928053") + self.addTest(lhs: "2576980379", rhs: "-6871947674", expecting: "-4294967295") + self.addTest(lhs: "2576980379", rhs: "6012954215", expecting: "8589934594") + self.addTest(lhs: "2576980379", rhs: "-6012954215", expecting: "-3435973836") + self.addTest(lhs: "2576980379", rhs: "5153960756", expecting: "7730941135") + self.addTest(lhs: "2576980379", rhs: "-5153960756", expecting: "-2576980377") + self.addTest(lhs: "2576980379", rhs: "4294967297", expecting: "6871947676") + self.addTest(lhs: "2576980379", rhs: "-4294967297", expecting: "-1717986918") + self.addTest(lhs: "2576980379", rhs: "3435973838", expecting: "6012954217") + self.addTest(lhs: "2576980379", rhs: "-3435973838", expecting: "-858993459") + self.addTest(lhs: "2576980379", rhs: "2576980379", expecting: "5153960758") + self.addTest(lhs: "2576980379", rhs: "-2576980379", expecting: "0") + self.addTest(lhs: "2576980379", rhs: "1717986920", expecting: "4294967299") + self.addTest(lhs: "2576980379", rhs: "-1717986920", expecting: "858993459") + self.addTest(lhs: "2576980379", rhs: "858993461", expecting: "3435973840") + self.addTest(lhs: "2576980379", rhs: "-858993461", expecting: "1717986918") + self.addTest(lhs: "-2576980379", rhs: "0", expecting: "-2576980379") + self.addTest(lhs: "-2576980379", rhs: "1", expecting: "-2576980378") + self.addTest(lhs: "-2576980379", rhs: "-1", expecting: "-2576980380") + self.addTest(lhs: "-2576980379", rhs: "8589934592", expecting: "6012954213") + self.addTest(lhs: "-2576980379", rhs: "-8589934592", expecting: "-11166914971") + self.addTest(lhs: "-2576980379", rhs: "7730941133", expecting: "5153960754") + self.addTest(lhs: "-2576980379", rhs: "-7730941133", expecting: "-10307921512") + self.addTest(lhs: "-2576980379", rhs: "6871947674", expecting: "4294967295") + self.addTest(lhs: "-2576980379", rhs: "-6871947674", expecting: "-9448928053") + self.addTest(lhs: "-2576980379", rhs: "6012954215", expecting: "3435973836") + self.addTest(lhs: "-2576980379", rhs: "-6012954215", expecting: "-8589934594") + self.addTest(lhs: "-2576980379", rhs: "5153960756", expecting: "2576980377") + self.addTest(lhs: "-2576980379", rhs: "-5153960756", expecting: "-7730941135") + self.addTest(lhs: "-2576980379", rhs: "4294967297", expecting: "1717986918") + self.addTest(lhs: "-2576980379", rhs: "-4294967297", expecting: "-6871947676") + self.addTest(lhs: "-2576980379", rhs: "3435973838", expecting: "858993459") + self.addTest(lhs: "-2576980379", rhs: "-3435973838", expecting: "-6012954217") + self.addTest(lhs: "-2576980379", rhs: "2576980379", expecting: "0") + self.addTest(lhs: "-2576980379", rhs: "-2576980379", expecting: "-5153960758") + self.addTest(lhs: "-2576980379", rhs: "1717986920", expecting: "-858993459") + self.addTest(lhs: "-2576980379", rhs: "-1717986920", expecting: "-4294967299") + self.addTest(lhs: "-2576980379", rhs: "858993461", expecting: "-1717986918") + self.addTest(lhs: "-2576980379", rhs: "-858993461", expecting: "-3435973840") + self.addTest(lhs: "1717986920", rhs: "0", expecting: "1717986920") + self.addTest(lhs: "1717986920", rhs: "1", expecting: "1717986921") + self.addTest(lhs: "1717986920", rhs: "-1", expecting: "1717986919") + self.addTest(lhs: "1717986920", rhs: "8589934592", expecting: "10307921512") + self.addTest(lhs: "1717986920", rhs: "-8589934592", expecting: "-6871947672") + self.addTest(lhs: "1717986920", rhs: "7730941133", expecting: "9448928053") + self.addTest(lhs: "1717986920", rhs: "-7730941133", expecting: "-6012954213") + self.addTest(lhs: "1717986920", rhs: "6871947674", expecting: "8589934594") + self.addTest(lhs: "1717986920", rhs: "-6871947674", expecting: "-5153960754") + self.addTest(lhs: "1717986920", rhs: "6012954215", expecting: "7730941135") + self.addTest(lhs: "1717986920", rhs: "-6012954215", expecting: "-4294967295") + self.addTest(lhs: "1717986920", rhs: "5153960756", expecting: "6871947676") + self.addTest(lhs: "1717986920", rhs: "-5153960756", expecting: "-3435973836") + self.addTest(lhs: "1717986920", rhs: "4294967297", expecting: "6012954217") + self.addTest(lhs: "1717986920", rhs: "-4294967297", expecting: "-2576980377") + self.addTest(lhs: "1717986920", rhs: "3435973838", expecting: "5153960758") + self.addTest(lhs: "1717986920", rhs: "-3435973838", expecting: "-1717986918") + self.addTest(lhs: "1717986920", rhs: "2576980379", expecting: "4294967299") + self.addTest(lhs: "1717986920", rhs: "-2576980379", expecting: "-858993459") + self.addTest(lhs: "1717986920", rhs: "1717986920", expecting: "3435973840") + self.addTest(lhs: "1717986920", rhs: "-1717986920", expecting: "0") + self.addTest(lhs: "1717986920", rhs: "858993461", expecting: "2576980381") + self.addTest(lhs: "1717986920", rhs: "-858993461", expecting: "858993459") + 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: "8589934592", expecting: "6871947672") + self.addTest(lhs: "-1717986920", rhs: "-8589934592", expecting: "-10307921512") + self.addTest(lhs: "-1717986920", rhs: "7730941133", expecting: "6012954213") + self.addTest(lhs: "-1717986920", rhs: "-7730941133", expecting: "-9448928053") + self.addTest(lhs: "-1717986920", rhs: "6871947674", expecting: "5153960754") + self.addTest(lhs: "-1717986920", rhs: "-6871947674", expecting: "-8589934594") + self.addTest(lhs: "-1717986920", rhs: "6012954215", expecting: "4294967295") + self.addTest(lhs: "-1717986920", rhs: "-6012954215", expecting: "-7730941135") + self.addTest(lhs: "-1717986920", rhs: "5153960756", expecting: "3435973836") + self.addTest(lhs: "-1717986920", rhs: "-5153960756", expecting: "-6871947676") + self.addTest(lhs: "-1717986920", rhs: "4294967297", expecting: "2576980377") + self.addTest(lhs: "-1717986920", rhs: "-4294967297", expecting: "-6012954217") + self.addTest(lhs: "-1717986920", rhs: "3435973838", expecting: "1717986918") + self.addTest(lhs: "-1717986920", rhs: "-3435973838", expecting: "-5153960758") + self.addTest(lhs: "-1717986920", rhs: "2576980379", expecting: "858993459") + self.addTest(lhs: "-1717986920", rhs: "-2576980379", expecting: "-4294967299") + self.addTest(lhs: "-1717986920", rhs: "1717986920", expecting: "0") + self.addTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "-3435973840") + self.addTest(lhs: "-1717986920", rhs: "858993461", expecting: "-858993459") + self.addTest(lhs: "-1717986920", rhs: "-858993461", expecting: "-2576980381") + self.addTest(lhs: "858993461", rhs: "0", expecting: "858993461") + self.addTest(lhs: "858993461", rhs: "1", expecting: "858993462") + self.addTest(lhs: "858993461", rhs: "-1", expecting: "858993460") + self.addTest(lhs: "858993461", rhs: "8589934592", expecting: "9448928053") + self.addTest(lhs: "858993461", rhs: "-8589934592", expecting: "-7730941131") + self.addTest(lhs: "858993461", rhs: "7730941133", expecting: "8589934594") + self.addTest(lhs: "858993461", rhs: "-7730941133", expecting: "-6871947672") + self.addTest(lhs: "858993461", rhs: "6871947674", expecting: "7730941135") + self.addTest(lhs: "858993461", rhs: "-6871947674", expecting: "-6012954213") + self.addTest(lhs: "858993461", rhs: "6012954215", expecting: "6871947676") + self.addTest(lhs: "858993461", rhs: "-6012954215", expecting: "-5153960754") + self.addTest(lhs: "858993461", rhs: "5153960756", expecting: "6012954217") + self.addTest(lhs: "858993461", rhs: "-5153960756", expecting: "-4294967295") + self.addTest(lhs: "858993461", rhs: "4294967297", expecting: "5153960758") + self.addTest(lhs: "858993461", rhs: "-4294967297", expecting: "-3435973836") + self.addTest(lhs: "858993461", rhs: "3435973838", expecting: "4294967299") + self.addTest(lhs: "858993461", rhs: "-3435973838", expecting: "-2576980377") + self.addTest(lhs: "858993461", rhs: "2576980379", expecting: "3435973840") + self.addTest(lhs: "858993461", rhs: "-2576980379", expecting: "-1717986918") + self.addTest(lhs: "858993461", rhs: "1717986920", expecting: "2576980381") + self.addTest(lhs: "858993461", rhs: "-1717986920", expecting: "-858993459") + self.addTest(lhs: "858993461", rhs: "858993461", expecting: "1717986922") + self.addTest(lhs: "858993461", rhs: "-858993461", expecting: "0") + self.addTest(lhs: "-858993461", rhs: "0", expecting: "-858993461") + self.addTest(lhs: "-858993461", rhs: "1", expecting: "-858993460") + self.addTest(lhs: "-858993461", rhs: "-1", expecting: "-858993462") + self.addTest(lhs: "-858993461", rhs: "8589934592", expecting: "7730941131") + self.addTest(lhs: "-858993461", rhs: "-8589934592", expecting: "-9448928053") + self.addTest(lhs: "-858993461", rhs: "7730941133", expecting: "6871947672") + self.addTest(lhs: "-858993461", rhs: "-7730941133", expecting: "-8589934594") + self.addTest(lhs: "-858993461", rhs: "6871947674", expecting: "6012954213") + self.addTest(lhs: "-858993461", rhs: "-6871947674", expecting: "-7730941135") + self.addTest(lhs: "-858993461", rhs: "6012954215", expecting: "5153960754") + self.addTest(lhs: "-858993461", rhs: "-6012954215", expecting: "-6871947676") + self.addTest(lhs: "-858993461", rhs: "5153960756", expecting: "4294967295") + self.addTest(lhs: "-858993461", rhs: "-5153960756", expecting: "-6012954217") + self.addTest(lhs: "-858993461", rhs: "4294967297", expecting: "3435973836") + self.addTest(lhs: "-858993461", rhs: "-4294967297", expecting: "-5153960758") + self.addTest(lhs: "-858993461", rhs: "3435973838", expecting: "2576980377") + self.addTest(lhs: "-858993461", rhs: "-3435973838", expecting: "-4294967299") + self.addTest(lhs: "-858993461", rhs: "2576980379", expecting: "1717986918") + self.addTest(lhs: "-858993461", rhs: "-2576980379", expecting: "-3435973840") + self.addTest(lhs: "-858993461", rhs: "1717986920", expecting: "858993459") + self.addTest(lhs: "-858993461", rhs: "-1717986920", expecting: "-2576980381") + self.addTest(lhs: "-858993461", rhs: "858993461", expecting: "0") + self.addTest(lhs: "-858993461", rhs: "-858993461", expecting: "-1717986922") + } + + func test_add_int_big() { + 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: "8589934592", rhs: "0", expecting: "8589934592") + self.addTest(lhs: "8589934592", rhs: "1", expecting: "8589934593") + self.addTest(lhs: "8589934592", rhs: "-1", expecting: "8589934591") + self.addTest(lhs: "8589934592", rhs: "18446744073709551615", expecting: "18446744082299486207") + self.addTest(lhs: "8589934592", rhs: "-18446744073709551615", expecting: "-18446744065119617023") + self.addTest(lhs: "8589934592", rhs: "18446744073709551617", expecting: "18446744082299486209") + self.addTest(lhs: "8589934592", rhs: "-18446744073709551617", expecting: "-18446744065119617025") + self.addTest(lhs: "8589934592", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351514067697666") + self.addTest(lhs: "8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351496887828482") + self.addTest(lhs: "8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915262451318789") + self.addTest(lhs: "8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915245271449605") + self.addTest(lhs: "8589934592", rhs: "18446744073709551623", expecting: "18446744082299486215") + self.addTest(lhs: "8589934592", rhs: "-18446744073709551623", expecting: "-18446744065119617031") + self.addTest(lhs: "8589934592", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815956325007362") + self.addTest(lhs: "8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815939145138178") + self.addTest(lhs: "8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095410803277835") + self.addTest(lhs: "8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095393623408651") + self.addTest(lhs: "8589934592", rhs: "18446744073709551629", expecting: "18446744082299486221") + self.addTest(lhs: "8589934592", rhs: "-18446744073709551629", expecting: "-18446744065119617037") + self.addTest(lhs: "8589934592", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280398582317058") + self.addTest(lhs: "8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280381402447874") + self.addTest(lhs: "8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275559155236881") + self.addTest(lhs: "8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275541975367697") + self.addTest(lhs: "8589934592", rhs: "18446744073709551635", expecting: "18446744082299486227") + self.addTest(lhs: "8589934592", rhs: "-18446744073709551635", expecting: "-18446744065119617043") + self.addTest(lhs: "-8589934592", rhs: "0", expecting: "-8589934592") + self.addTest(lhs: "-8589934592", rhs: "1", expecting: "-8589934591") + self.addTest(lhs: "-8589934592", rhs: "-1", expecting: "-8589934593") + self.addTest(lhs: "-8589934592", rhs: "18446744073709551615", expecting: "18446744065119617023") + self.addTest(lhs: "-8589934592", rhs: "-18446744073709551615", expecting: "-18446744082299486207") + self.addTest(lhs: "-8589934592", rhs: "18446744073709551617", expecting: "18446744065119617025") + self.addTest(lhs: "-8589934592", rhs: "-18446744073709551617", expecting: "-18446744082299486209") + self.addTest(lhs: "-8589934592", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351496887828482") + self.addTest(lhs: "-8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351514067697666") + self.addTest(lhs: "-8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915245271449605") + self.addTest(lhs: "-8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915262451318789") + self.addTest(lhs: "-8589934592", rhs: "18446744073709551623", expecting: "18446744065119617031") + self.addTest(lhs: "-8589934592", rhs: "-18446744073709551623", expecting: "-18446744082299486215") + self.addTest(lhs: "-8589934592", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815939145138178") + self.addTest(lhs: "-8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815956325007362") + self.addTest(lhs: "-8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095393623408651") + self.addTest(lhs: "-8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095410803277835") + self.addTest(lhs: "-8589934592", rhs: "18446744073709551629", expecting: "18446744065119617037") + self.addTest(lhs: "-8589934592", rhs: "-18446744073709551629", expecting: "-18446744082299486221") + self.addTest(lhs: "-8589934592", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280381402447874") + self.addTest(lhs: "-8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280398582317058") + self.addTest(lhs: "-8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275541975367697") + self.addTest(lhs: "-8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275559155236881") + self.addTest(lhs: "-8589934592", rhs: "18446744073709551635", expecting: "18446744065119617043") + self.addTest(lhs: "-8589934592", rhs: "-18446744073709551635", expecting: "-18446744082299486227") + self.addTest(lhs: "7730941133", rhs: "0", expecting: "7730941133") + self.addTest(lhs: "7730941133", rhs: "1", expecting: "7730941134") + self.addTest(lhs: "7730941133", rhs: "-1", expecting: "7730941132") + self.addTest(lhs: "7730941133", rhs: "18446744073709551615", expecting: "18446744081440492748") + self.addTest(lhs: "7730941133", rhs: "-18446744073709551615", expecting: "-18446744065978610482") + self.addTest(lhs: "7730941133", rhs: "18446744073709551617", expecting: "18446744081440492750") + self.addTest(lhs: "7730941133", rhs: "-18446744073709551617", expecting: "-18446744065978610484") + self.addTest(lhs: "7730941133", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351513208704207") + self.addTest(lhs: "7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351497746821941") + self.addTest(lhs: "7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915261592325330") + self.addTest(lhs: "7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915246130443064") + self.addTest(lhs: "7730941133", rhs: "18446744073709551623", expecting: "18446744081440492756") + self.addTest(lhs: "7730941133", rhs: "-18446744073709551623", expecting: "-18446744065978610490") + self.addTest(lhs: "7730941133", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815955466013903") + self.addTest(lhs: "7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815940004131637") + self.addTest(lhs: "7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095409944284376") + self.addTest(lhs: "7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095394482402110") + self.addTest(lhs: "7730941133", rhs: "18446744073709551629", expecting: "18446744081440492762") + self.addTest(lhs: "7730941133", rhs: "-18446744073709551629", expecting: "-18446744065978610496") + self.addTest(lhs: "7730941133", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280397723323599") + self.addTest(lhs: "7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280382261441333") + self.addTest(lhs: "7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275558296243422") + self.addTest(lhs: "7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275542834361156") + self.addTest(lhs: "7730941133", rhs: "18446744073709551635", expecting: "18446744081440492768") + self.addTest(lhs: "7730941133", rhs: "-18446744073709551635", expecting: "-18446744065978610502") + self.addTest(lhs: "-7730941133", rhs: "0", expecting: "-7730941133") + self.addTest(lhs: "-7730941133", rhs: "1", expecting: "-7730941132") + self.addTest(lhs: "-7730941133", rhs: "-1", expecting: "-7730941134") + self.addTest(lhs: "-7730941133", rhs: "18446744073709551615", expecting: "18446744065978610482") + self.addTest(lhs: "-7730941133", rhs: "-18446744073709551615", expecting: "-18446744081440492748") + self.addTest(lhs: "-7730941133", rhs: "18446744073709551617", expecting: "18446744065978610484") + self.addTest(lhs: "-7730941133", rhs: "-18446744073709551617", expecting: "-18446744081440492750") + self.addTest(lhs: "-7730941133", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351497746821941") + self.addTest(lhs: "-7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351513208704207") + self.addTest(lhs: "-7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915246130443064") + self.addTest(lhs: "-7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915261592325330") + self.addTest(lhs: "-7730941133", rhs: "18446744073709551623", expecting: "18446744065978610490") + self.addTest(lhs: "-7730941133", rhs: "-18446744073709551623", expecting: "-18446744081440492756") + self.addTest(lhs: "-7730941133", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815940004131637") + self.addTest(lhs: "-7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815955466013903") + self.addTest(lhs: "-7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095394482402110") + self.addTest(lhs: "-7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095409944284376") + self.addTest(lhs: "-7730941133", rhs: "18446744073709551629", expecting: "18446744065978610496") + self.addTest(lhs: "-7730941133", rhs: "-18446744073709551629", expecting: "-18446744081440492762") + self.addTest(lhs: "-7730941133", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280382261441333") + self.addTest(lhs: "-7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280397723323599") + self.addTest(lhs: "-7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275542834361156") + self.addTest(lhs: "-7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275558296243422") + self.addTest(lhs: "-7730941133", rhs: "18446744073709551635", expecting: "18446744065978610502") + self.addTest(lhs: "-7730941133", rhs: "-18446744073709551635", expecting: "-18446744081440492768") + self.addTest(lhs: "6871947674", rhs: "0", expecting: "6871947674") + self.addTest(lhs: "6871947674", rhs: "1", expecting: "6871947675") + self.addTest(lhs: "6871947674", rhs: "-1", expecting: "6871947673") + self.addTest(lhs: "6871947674", rhs: "18446744073709551615", expecting: "18446744080581499289") + self.addTest(lhs: "6871947674", rhs: "-18446744073709551615", expecting: "-18446744066837603941") + self.addTest(lhs: "6871947674", rhs: "18446744073709551617", expecting: "18446744080581499291") + self.addTest(lhs: "6871947674", rhs: "-18446744073709551617", expecting: "-18446744066837603943") + self.addTest(lhs: "6871947674", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351512349710748") + self.addTest(lhs: "6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351498605815400") + self.addTest(lhs: "6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915260733331871") + self.addTest(lhs: "6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915246989436523") + self.addTest(lhs: "6871947674", rhs: "18446744073709551623", expecting: "18446744080581499297") + self.addTest(lhs: "6871947674", rhs: "-18446744073709551623", expecting: "-18446744066837603949") + self.addTest(lhs: "6871947674", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815954607020444") + self.addTest(lhs: "6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815940863125096") + self.addTest(lhs: "6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095409085290917") + self.addTest(lhs: "6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095395341395569") + self.addTest(lhs: "6871947674", rhs: "18446744073709551629", expecting: "18446744080581499303") + self.addTest(lhs: "6871947674", rhs: "-18446744073709551629", expecting: "-18446744066837603955") + self.addTest(lhs: "6871947674", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280396864330140") + self.addTest(lhs: "6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280383120434792") + self.addTest(lhs: "6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275557437249963") + self.addTest(lhs: "6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275543693354615") + self.addTest(lhs: "6871947674", rhs: "18446744073709551635", expecting: "18446744080581499309") + self.addTest(lhs: "6871947674", rhs: "-18446744073709551635", expecting: "-18446744066837603961") + self.addTest(lhs: "-6871947674", rhs: "0", expecting: "-6871947674") + self.addTest(lhs: "-6871947674", rhs: "1", expecting: "-6871947673") + self.addTest(lhs: "-6871947674", rhs: "-1", expecting: "-6871947675") + self.addTest(lhs: "-6871947674", rhs: "18446744073709551615", expecting: "18446744066837603941") + self.addTest(lhs: "-6871947674", rhs: "-18446744073709551615", expecting: "-18446744080581499289") + self.addTest(lhs: "-6871947674", rhs: "18446744073709551617", expecting: "18446744066837603943") + self.addTest(lhs: "-6871947674", rhs: "-18446744073709551617", expecting: "-18446744080581499291") + self.addTest(lhs: "-6871947674", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351498605815400") + self.addTest(lhs: "-6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351512349710748") + self.addTest(lhs: "-6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915246989436523") + self.addTest(lhs: "-6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915260733331871") + self.addTest(lhs: "-6871947674", rhs: "18446744073709551623", expecting: "18446744066837603949") + self.addTest(lhs: "-6871947674", rhs: "-18446744073709551623", expecting: "-18446744080581499297") + self.addTest(lhs: "-6871947674", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815940863125096") + self.addTest(lhs: "-6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815954607020444") + self.addTest(lhs: "-6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095395341395569") + self.addTest(lhs: "-6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095409085290917") + self.addTest(lhs: "-6871947674", rhs: "18446744073709551629", expecting: "18446744066837603955") + self.addTest(lhs: "-6871947674", rhs: "-18446744073709551629", expecting: "-18446744080581499303") + self.addTest(lhs: "-6871947674", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280383120434792") + self.addTest(lhs: "-6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280396864330140") + self.addTest(lhs: "-6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275543693354615") + self.addTest(lhs: "-6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275557437249963") + self.addTest(lhs: "-6871947674", rhs: "18446744073709551635", expecting: "18446744066837603961") + self.addTest(lhs: "-6871947674", rhs: "-18446744073709551635", expecting: "-18446744080581499309") + self.addTest(lhs: "6012954215", rhs: "0", expecting: "6012954215") + self.addTest(lhs: "6012954215", rhs: "1", expecting: "6012954216") + self.addTest(lhs: "6012954215", rhs: "-1", expecting: "6012954214") + self.addTest(lhs: "6012954215", rhs: "18446744073709551615", expecting: "18446744079722505830") + self.addTest(lhs: "6012954215", rhs: "-18446744073709551615", expecting: "-18446744067696597400") + self.addTest(lhs: "6012954215", rhs: "18446744073709551617", expecting: "18446744079722505832") + self.addTest(lhs: "6012954215", rhs: "-18446744073709551617", expecting: "-18446744067696597402") + self.addTest(lhs: "6012954215", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351511490717289") + self.addTest(lhs: "6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351499464808859") + self.addTest(lhs: "6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915259874338412") + self.addTest(lhs: "6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915247848429982") + self.addTest(lhs: "6012954215", rhs: "18446744073709551623", expecting: "18446744079722505838") + self.addTest(lhs: "6012954215", rhs: "-18446744073709551623", expecting: "-18446744067696597408") + self.addTest(lhs: "6012954215", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815953748026985") + self.addTest(lhs: "6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815941722118555") + self.addTest(lhs: "6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095408226297458") + self.addTest(lhs: "6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095396200389028") + self.addTest(lhs: "6012954215", rhs: "18446744073709551629", expecting: "18446744079722505844") + self.addTest(lhs: "6012954215", rhs: "-18446744073709551629", expecting: "-18446744067696597414") + self.addTest(lhs: "6012954215", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280396005336681") + self.addTest(lhs: "6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280383979428251") + self.addTest(lhs: "6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275556578256504") + self.addTest(lhs: "6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275544552348074") + self.addTest(lhs: "6012954215", rhs: "18446744073709551635", expecting: "18446744079722505850") + self.addTest(lhs: "6012954215", rhs: "-18446744073709551635", expecting: "-18446744067696597420") + self.addTest(lhs: "-6012954215", rhs: "0", expecting: "-6012954215") + self.addTest(lhs: "-6012954215", rhs: "1", expecting: "-6012954214") + self.addTest(lhs: "-6012954215", rhs: "-1", expecting: "-6012954216") + self.addTest(lhs: "-6012954215", rhs: "18446744073709551615", expecting: "18446744067696597400") + self.addTest(lhs: "-6012954215", rhs: "-18446744073709551615", expecting: "-18446744079722505830") + self.addTest(lhs: "-6012954215", rhs: "18446744073709551617", expecting: "18446744067696597402") + self.addTest(lhs: "-6012954215", rhs: "-18446744073709551617", expecting: "-18446744079722505832") + self.addTest(lhs: "-6012954215", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351499464808859") + self.addTest(lhs: "-6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351511490717289") + self.addTest(lhs: "-6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915247848429982") + self.addTest(lhs: "-6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915259874338412") + self.addTest(lhs: "-6012954215", rhs: "18446744073709551623", expecting: "18446744067696597408") + self.addTest(lhs: "-6012954215", rhs: "-18446744073709551623", expecting: "-18446744079722505838") + self.addTest(lhs: "-6012954215", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815941722118555") + self.addTest(lhs: "-6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815953748026985") + self.addTest(lhs: "-6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095396200389028") + self.addTest(lhs: "-6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095408226297458") + self.addTest(lhs: "-6012954215", rhs: "18446744073709551629", expecting: "18446744067696597414") + self.addTest(lhs: "-6012954215", rhs: "-18446744073709551629", expecting: "-18446744079722505844") + self.addTest(lhs: "-6012954215", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280383979428251") + self.addTest(lhs: "-6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280396005336681") + self.addTest(lhs: "-6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275544552348074") + self.addTest(lhs: "-6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275556578256504") + self.addTest(lhs: "-6012954215", rhs: "18446744073709551635", expecting: "18446744067696597420") + self.addTest(lhs: "-6012954215", rhs: "-18446744073709551635", expecting: "-18446744079722505850") + self.addTest(lhs: "5153960756", rhs: "0", expecting: "5153960756") + self.addTest(lhs: "5153960756", rhs: "1", expecting: "5153960757") + self.addTest(lhs: "5153960756", rhs: "-1", expecting: "5153960755") + self.addTest(lhs: "5153960756", rhs: "18446744073709551615", expecting: "18446744078863512371") + self.addTest(lhs: "5153960756", rhs: "-18446744073709551615", expecting: "-18446744068555590859") + self.addTest(lhs: "5153960756", rhs: "18446744073709551617", expecting: "18446744078863512373") + self.addTest(lhs: "5153960756", rhs: "-18446744073709551617", expecting: "-18446744068555590861") + self.addTest(lhs: "5153960756", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351510631723830") + self.addTest(lhs: "5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351500323802318") + self.addTest(lhs: "5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915259015344953") + self.addTest(lhs: "5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915248707423441") + self.addTest(lhs: "5153960756", rhs: "18446744073709551623", expecting: "18446744078863512379") + self.addTest(lhs: "5153960756", rhs: "-18446744073709551623", expecting: "-18446744068555590867") + self.addTest(lhs: "5153960756", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815952889033526") + self.addTest(lhs: "5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815942581112014") + self.addTest(lhs: "5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095407367303999") + self.addTest(lhs: "5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095397059382487") + self.addTest(lhs: "5153960756", rhs: "18446744073709551629", expecting: "18446744078863512385") + self.addTest(lhs: "5153960756", rhs: "-18446744073709551629", expecting: "-18446744068555590873") + self.addTest(lhs: "5153960756", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280395146343222") + self.addTest(lhs: "5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280384838421710") + self.addTest(lhs: "5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275555719263045") + self.addTest(lhs: "5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275545411341533") + self.addTest(lhs: "5153960756", rhs: "18446744073709551635", expecting: "18446744078863512391") + self.addTest(lhs: "5153960756", rhs: "-18446744073709551635", expecting: "-18446744068555590879") + self.addTest(lhs: "-5153960756", rhs: "0", expecting: "-5153960756") + self.addTest(lhs: "-5153960756", rhs: "1", expecting: "-5153960755") + self.addTest(lhs: "-5153960756", rhs: "-1", expecting: "-5153960757") + self.addTest(lhs: "-5153960756", rhs: "18446744073709551615", expecting: "18446744068555590859") + self.addTest(lhs: "-5153960756", rhs: "-18446744073709551615", expecting: "-18446744078863512371") + self.addTest(lhs: "-5153960756", rhs: "18446744073709551617", expecting: "18446744068555590861") + self.addTest(lhs: "-5153960756", rhs: "-18446744073709551617", expecting: "-18446744078863512373") + self.addTest(lhs: "-5153960756", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351500323802318") + self.addTest(lhs: "-5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351510631723830") + self.addTest(lhs: "-5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915248707423441") + self.addTest(lhs: "-5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915259015344953") + self.addTest(lhs: "-5153960756", rhs: "18446744073709551623", expecting: "18446744068555590867") + self.addTest(lhs: "-5153960756", rhs: "-18446744073709551623", expecting: "-18446744078863512379") + self.addTest(lhs: "-5153960756", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815942581112014") + self.addTest(lhs: "-5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815952889033526") + self.addTest(lhs: "-5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095397059382487") + self.addTest(lhs: "-5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095407367303999") + self.addTest(lhs: "-5153960756", rhs: "18446744073709551629", expecting: "18446744068555590873") + self.addTest(lhs: "-5153960756", rhs: "-18446744073709551629", expecting: "-18446744078863512385") + self.addTest(lhs: "-5153960756", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280384838421710") + self.addTest(lhs: "-5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280395146343222") + self.addTest(lhs: "-5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275545411341533") + self.addTest(lhs: "-5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275555719263045") + self.addTest(lhs: "-5153960756", rhs: "18446744073709551635", expecting: "18446744068555590879") + self.addTest(lhs: "-5153960756", rhs: "-18446744073709551635", expecting: "-18446744078863512391") + self.addTest(lhs: "4294967297", rhs: "0", expecting: "4294967297") + self.addTest(lhs: "4294967297", rhs: "1", expecting: "4294967298") + self.addTest(lhs: "4294967297", rhs: "-1", expecting: "4294967296") + self.addTest(lhs: "4294967297", rhs: "18446744073709551615", expecting: "18446744078004518912") + self.addTest(lhs: "4294967297", rhs: "-18446744073709551615", expecting: "-18446744069414584318") + self.addTest(lhs: "4294967297", rhs: "18446744073709551617", expecting: "18446744078004518914") + self.addTest(lhs: "4294967297", rhs: "-18446744073709551617", expecting: "-18446744069414584320") + self.addTest(lhs: "4294967297", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351509772730371") + self.addTest(lhs: "4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351501182795777") + self.addTest(lhs: "4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915258156351494") + self.addTest(lhs: "4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915249566416900") + self.addTest(lhs: "4294967297", rhs: "18446744073709551623", expecting: "18446744078004518920") + self.addTest(lhs: "4294967297", rhs: "-18446744073709551623", expecting: "-18446744069414584326") + self.addTest(lhs: "4294967297", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815952030040067") + self.addTest(lhs: "4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815943440105473") + self.addTest(lhs: "4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095406508310540") + self.addTest(lhs: "4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095397918375946") + self.addTest(lhs: "4294967297", rhs: "18446744073709551629", expecting: "18446744078004518926") + self.addTest(lhs: "4294967297", rhs: "-18446744073709551629", expecting: "-18446744069414584332") + self.addTest(lhs: "4294967297", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280394287349763") + self.addTest(lhs: "4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280385697415169") + self.addTest(lhs: "4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275554860269586") + self.addTest(lhs: "4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275546270334992") + self.addTest(lhs: "4294967297", rhs: "18446744073709551635", expecting: "18446744078004518932") + self.addTest(lhs: "4294967297", rhs: "-18446744073709551635", expecting: "-18446744069414584338") + self.addTest(lhs: "-4294967297", rhs: "0", expecting: "-4294967297") + self.addTest(lhs: "-4294967297", rhs: "1", expecting: "-4294967296") + self.addTest(lhs: "-4294967297", rhs: "-1", expecting: "-4294967298") + self.addTest(lhs: "-4294967297", rhs: "18446744073709551615", expecting: "18446744069414584318") + self.addTest(lhs: "-4294967297", rhs: "-18446744073709551615", expecting: "-18446744078004518912") + self.addTest(lhs: "-4294967297", rhs: "18446744073709551617", expecting: "18446744069414584320") + self.addTest(lhs: "-4294967297", rhs: "-18446744073709551617", expecting: "-18446744078004518914") + self.addTest(lhs: "-4294967297", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351501182795777") + self.addTest(lhs: "-4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351509772730371") + self.addTest(lhs: "-4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915249566416900") + self.addTest(lhs: "-4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915258156351494") + self.addTest(lhs: "-4294967297", rhs: "18446744073709551623", expecting: "18446744069414584326") + self.addTest(lhs: "-4294967297", rhs: "-18446744073709551623", expecting: "-18446744078004518920") + self.addTest(lhs: "-4294967297", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815943440105473") + self.addTest(lhs: "-4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815952030040067") + self.addTest(lhs: "-4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095397918375946") + self.addTest(lhs: "-4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095406508310540") + self.addTest(lhs: "-4294967297", rhs: "18446744073709551629", expecting: "18446744069414584332") + self.addTest(lhs: "-4294967297", rhs: "-18446744073709551629", expecting: "-18446744078004518926") + self.addTest(lhs: "-4294967297", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280385697415169") + self.addTest(lhs: "-4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280394287349763") + self.addTest(lhs: "-4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275546270334992") + self.addTest(lhs: "-4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275554860269586") + self.addTest(lhs: "-4294967297", rhs: "18446744073709551635", expecting: "18446744069414584338") + self.addTest(lhs: "-4294967297", rhs: "-18446744073709551635", expecting: "-18446744078004518932") + self.addTest(lhs: "3435973838", rhs: "0", expecting: "3435973838") + self.addTest(lhs: "3435973838", rhs: "1", expecting: "3435973839") + self.addTest(lhs: "3435973838", rhs: "-1", expecting: "3435973837") + self.addTest(lhs: "3435973838", rhs: "18446744073709551615", expecting: "18446744077145525453") + self.addTest(lhs: "3435973838", rhs: "-18446744073709551615", expecting: "-18446744070273577777") + self.addTest(lhs: "3435973838", rhs: "18446744073709551617", expecting: "18446744077145525455") + self.addTest(lhs: "3435973838", rhs: "-18446744073709551617", expecting: "-18446744070273577779") + self.addTest(lhs: "3435973838", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351508913736912") + self.addTest(lhs: "3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351502041789236") + self.addTest(lhs: "3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915257297358035") + self.addTest(lhs: "3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915250425410359") + self.addTest(lhs: "3435973838", rhs: "18446744073709551623", expecting: "18446744077145525461") + self.addTest(lhs: "3435973838", rhs: "-18446744073709551623", expecting: "-18446744070273577785") + self.addTest(lhs: "3435973838", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815951171046608") + self.addTest(lhs: "3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815944299098932") + self.addTest(lhs: "3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095405649317081") + self.addTest(lhs: "3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095398777369405") + self.addTest(lhs: "3435973838", rhs: "18446744073709551629", expecting: "18446744077145525467") + self.addTest(lhs: "3435973838", rhs: "-18446744073709551629", expecting: "-18446744070273577791") + self.addTest(lhs: "3435973838", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280393428356304") + self.addTest(lhs: "3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280386556408628") + self.addTest(lhs: "3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275554001276127") + self.addTest(lhs: "3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275547129328451") + self.addTest(lhs: "3435973838", rhs: "18446744073709551635", expecting: "18446744077145525473") + self.addTest(lhs: "3435973838", rhs: "-18446744073709551635", expecting: "-18446744070273577797") + self.addTest(lhs: "-3435973838", rhs: "0", expecting: "-3435973838") + self.addTest(lhs: "-3435973838", rhs: "1", expecting: "-3435973837") + self.addTest(lhs: "-3435973838", rhs: "-1", expecting: "-3435973839") + self.addTest(lhs: "-3435973838", rhs: "18446744073709551615", expecting: "18446744070273577777") + self.addTest(lhs: "-3435973838", rhs: "-18446744073709551615", expecting: "-18446744077145525453") + self.addTest(lhs: "-3435973838", rhs: "18446744073709551617", expecting: "18446744070273577779") + self.addTest(lhs: "-3435973838", rhs: "-18446744073709551617", expecting: "-18446744077145525455") + self.addTest(lhs: "-3435973838", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351502041789236") + self.addTest(lhs: "-3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351508913736912") + self.addTest(lhs: "-3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915250425410359") + self.addTest(lhs: "-3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915257297358035") + self.addTest(lhs: "-3435973838", rhs: "18446744073709551623", expecting: "18446744070273577785") + self.addTest(lhs: "-3435973838", rhs: "-18446744073709551623", expecting: "-18446744077145525461") + self.addTest(lhs: "-3435973838", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815944299098932") + self.addTest(lhs: "-3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815951171046608") + self.addTest(lhs: "-3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095398777369405") + self.addTest(lhs: "-3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095405649317081") + self.addTest(lhs: "-3435973838", rhs: "18446744073709551629", expecting: "18446744070273577791") + self.addTest(lhs: "-3435973838", rhs: "-18446744073709551629", expecting: "-18446744077145525467") + self.addTest(lhs: "-3435973838", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280386556408628") + self.addTest(lhs: "-3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280393428356304") + self.addTest(lhs: "-3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275547129328451") + self.addTest(lhs: "-3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275554001276127") + self.addTest(lhs: "-3435973838", rhs: "18446744073709551635", expecting: "18446744070273577797") + self.addTest(lhs: "-3435973838", rhs: "-18446744073709551635", expecting: "-18446744077145525473") + self.addTest(lhs: "2576980379", rhs: "0", expecting: "2576980379") + self.addTest(lhs: "2576980379", rhs: "1", expecting: "2576980380") + self.addTest(lhs: "2576980379", rhs: "-1", expecting: "2576980378") + self.addTest(lhs: "2576980379", rhs: "18446744073709551615", expecting: "18446744076286531994") + self.addTest(lhs: "2576980379", rhs: "-18446744073709551615", expecting: "-18446744071132571236") + self.addTest(lhs: "2576980379", rhs: "18446744073709551617", expecting: "18446744076286531996") + self.addTest(lhs: "2576980379", rhs: "-18446744073709551617", expecting: "-18446744071132571238") + self.addTest(lhs: "2576980379", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351508054743453") + self.addTest(lhs: "2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351502900782695") + self.addTest(lhs: "2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915256438364576") + self.addTest(lhs: "2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915251284403818") + self.addTest(lhs: "2576980379", rhs: "18446744073709551623", expecting: "18446744076286532002") + self.addTest(lhs: "2576980379", rhs: "-18446744073709551623", expecting: "-18446744071132571244") + self.addTest(lhs: "2576980379", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815950312053149") + self.addTest(lhs: "2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815945158092391") + self.addTest(lhs: "2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404790323622") + self.addTest(lhs: "2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095399636362864") + self.addTest(lhs: "2576980379", rhs: "18446744073709551629", expecting: "18446744076286532008") + self.addTest(lhs: "2576980379", rhs: "-18446744073709551629", expecting: "-18446744071132571250") + self.addTest(lhs: "2576980379", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280392569362845") + self.addTest(lhs: "2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280387415402087") + self.addTest(lhs: "2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275553142282668") + self.addTest(lhs: "2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275547988321910") + self.addTest(lhs: "2576980379", rhs: "18446744073709551635", expecting: "18446744076286532014") + self.addTest(lhs: "2576980379", rhs: "-18446744073709551635", expecting: "-18446744071132571256") + self.addTest(lhs: "-2576980379", rhs: "0", expecting: "-2576980379") + self.addTest(lhs: "-2576980379", rhs: "1", expecting: "-2576980378") + self.addTest(lhs: "-2576980379", rhs: "-1", expecting: "-2576980380") + self.addTest(lhs: "-2576980379", rhs: "18446744073709551615", expecting: "18446744071132571236") + self.addTest(lhs: "-2576980379", rhs: "-18446744073709551615", expecting: "-18446744076286531994") + self.addTest(lhs: "-2576980379", rhs: "18446744073709551617", expecting: "18446744071132571238") + self.addTest(lhs: "-2576980379", rhs: "-18446744073709551617", expecting: "-18446744076286531996") + self.addTest(lhs: "-2576980379", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351502900782695") + self.addTest(lhs: "-2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351508054743453") + self.addTest(lhs: "-2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915251284403818") + self.addTest(lhs: "-2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915256438364576") + self.addTest(lhs: "-2576980379", rhs: "18446744073709551623", expecting: "18446744071132571244") + self.addTest(lhs: "-2576980379", rhs: "-18446744073709551623", expecting: "-18446744076286532002") + self.addTest(lhs: "-2576980379", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815945158092391") + self.addTest(lhs: "-2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815950312053149") + self.addTest(lhs: "-2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095399636362864") + self.addTest(lhs: "-2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404790323622") + self.addTest(lhs: "-2576980379", rhs: "18446744073709551629", expecting: "18446744071132571250") + self.addTest(lhs: "-2576980379", rhs: "-18446744073709551629", expecting: "-18446744076286532008") + self.addTest(lhs: "-2576980379", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280387415402087") + self.addTest(lhs: "-2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280392569362845") + self.addTest(lhs: "-2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275547988321910") + self.addTest(lhs: "-2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275553142282668") + self.addTest(lhs: "-2576980379", rhs: "18446744073709551635", expecting: "18446744071132571256") + self.addTest(lhs: "-2576980379", rhs: "-18446744073709551635", expecting: "-18446744076286532014") + self.addTest(lhs: "1717986920", rhs: "0", expecting: "1717986920") + self.addTest(lhs: "1717986920", rhs: "1", expecting: "1717986921") + self.addTest(lhs: "1717986920", rhs: "-1", expecting: "1717986919") + self.addTest(lhs: "1717986920", rhs: "18446744073709551615", expecting: "18446744075427538535") + self.addTest(lhs: "1717986920", rhs: "-18446744073709551615", expecting: "-18446744071991564695") + self.addTest(lhs: "1717986920", rhs: "18446744073709551617", expecting: "18446744075427538537") + self.addTest(lhs: "1717986920", rhs: "-18446744073709551617", expecting: "-18446744071991564697") + self.addTest(lhs: "1717986920", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351507195749994") + self.addTest(lhs: "1717986920", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351503759776154") + self.addTest(lhs: "1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255579371117") + self.addTest(lhs: "1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915252143397277") + self.addTest(lhs: "1717986920", rhs: "18446744073709551623", expecting: "18446744075427538543") + self.addTest(lhs: "1717986920", rhs: "-18446744073709551623", expecting: "-18446744071991564703") + self.addTest(lhs: "1717986920", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949453059690") + self.addTest(lhs: "1717986920", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946017085850") + self.addTest(lhs: "1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403931330163") + self.addTest(lhs: "1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095400495356323") + self.addTest(lhs: "1717986920", rhs: "18446744073709551629", expecting: "18446744075427538549") + self.addTest(lhs: "1717986920", rhs: "-18446744073709551629", expecting: "-18446744071991564709") + self.addTest(lhs: "1717986920", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391710369386") + self.addTest(lhs: "1717986920", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280388274395546") + self.addTest(lhs: "1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552283289209") + self.addTest(lhs: "1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275548847315369") + self.addTest(lhs: "1717986920", rhs: "18446744073709551635", expecting: "18446744075427538555") + self.addTest(lhs: "1717986920", rhs: "-18446744073709551635", expecting: "-18446744071991564715") + 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: "858993461", rhs: "0", expecting: "858993461") + self.addTest(lhs: "858993461", rhs: "1", expecting: "858993462") + self.addTest(lhs: "858993461", rhs: "-1", expecting: "858993460") + self.addTest(lhs: "858993461", rhs: "18446744073709551615", expecting: "18446744074568545076") + self.addTest(lhs: "858993461", rhs: "-18446744073709551615", expecting: "-18446744072850558154") + self.addTest(lhs: "858993461", rhs: "18446744073709551617", expecting: "18446744074568545078") + self.addTest(lhs: "858993461", rhs: "-18446744073709551617", expecting: "-18446744072850558156") + self.addTest(lhs: "858993461", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506336756535") + self.addTest(lhs: "858993461", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351504618769613") + self.addTest(lhs: "858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254720377658") + self.addTest(lhs: "858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253002390736") + self.addTest(lhs: "858993461", rhs: "18446744073709551623", expecting: "18446744074568545084") + self.addTest(lhs: "858993461", rhs: "-18446744073709551623", expecting: "-18446744072850558162") + self.addTest(lhs: "858993461", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948594066231") + self.addTest(lhs: "858993461", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946876079309") + self.addTest(lhs: "858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403072336704") + self.addTest(lhs: "858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095401354349782") + self.addTest(lhs: "858993461", rhs: "18446744073709551629", expecting: "18446744074568545090") + self.addTest(lhs: "858993461", rhs: "-18446744073709551629", expecting: "-18446744072850558168") + self.addTest(lhs: "858993461", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390851375927") + self.addTest(lhs: "858993461", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389133389005") + self.addTest(lhs: "858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551424295750") + self.addTest(lhs: "858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275549706308828") + self.addTest(lhs: "858993461", rhs: "18446744073709551635", expecting: "18446744074568545096") + self.addTest(lhs: "858993461", rhs: "-18446744073709551635", expecting: "-18446744072850558174") + self.addTest(lhs: "-858993461", rhs: "0", expecting: "-858993461") + self.addTest(lhs: "-858993461", rhs: "1", expecting: "-858993460") + self.addTest(lhs: "-858993461", rhs: "-1", expecting: "-858993462") + self.addTest(lhs: "-858993461", rhs: "18446744073709551615", expecting: "18446744072850558154") + self.addTest(lhs: "-858993461", rhs: "-18446744073709551615", expecting: "-18446744074568545076") + self.addTest(lhs: "-858993461", rhs: "18446744073709551617", expecting: "18446744072850558156") + self.addTest(lhs: "-858993461", rhs: "-18446744073709551617", expecting: "-18446744074568545078") + self.addTest(lhs: "-858993461", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351504618769613") + self.addTest(lhs: "-858993461", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506336756535") + self.addTest(lhs: "-858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253002390736") + self.addTest(lhs: "-858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254720377658") + self.addTest(lhs: "-858993461", rhs: "18446744073709551623", expecting: "18446744072850558162") + self.addTest(lhs: "-858993461", rhs: "-18446744073709551623", expecting: "-18446744074568545084") + self.addTest(lhs: "-858993461", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815946876079309") + self.addTest(lhs: "-858993461", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948594066231") + self.addTest(lhs: "-858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095401354349782") + self.addTest(lhs: "-858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403072336704") + self.addTest(lhs: "-858993461", rhs: "18446744073709551629", expecting: "18446744072850558168") + self.addTest(lhs: "-858993461", rhs: "-18446744073709551629", expecting: "-18446744074568545090") + self.addTest(lhs: "-858993461", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389133389005") + self.addTest(lhs: "-858993461", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390851375927") + self.addTest(lhs: "-858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275549706308828") + self.addTest(lhs: "-858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551424295750") + self.addTest(lhs: "-858993461", rhs: "18446744073709551635", expecting: "18446744072850558174") + self.addTest(lhs: "-858993461", rhs: "-18446744073709551635", expecting: "-18446744074568545096") + } + + func test_add_big_int() { + 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: "8589934592", expecting: "8589934592") + self.addTest(lhs: "0", rhs: "-8589934592", expecting: "-8589934592") + self.addTest(lhs: "0", rhs: "7730941133", expecting: "7730941133") + self.addTest(lhs: "0", rhs: "-7730941133", expecting: "-7730941133") + self.addTest(lhs: "0", rhs: "6871947674", expecting: "6871947674") + self.addTest(lhs: "0", rhs: "-6871947674", expecting: "-6871947674") + self.addTest(lhs: "0", rhs: "6012954215", expecting: "6012954215") + self.addTest(lhs: "0", rhs: "-6012954215", expecting: "-6012954215") + self.addTest(lhs: "0", rhs: "5153960756", expecting: "5153960756") + self.addTest(lhs: "0", rhs: "-5153960756", expecting: "-5153960756") + self.addTest(lhs: "0", rhs: "4294967297", expecting: "4294967297") + self.addTest(lhs: "0", rhs: "-4294967297", expecting: "-4294967297") + self.addTest(lhs: "0", rhs: "3435973838", expecting: "3435973838") + self.addTest(lhs: "0", rhs: "-3435973838", expecting: "-3435973838") + self.addTest(lhs: "0", rhs: "2576980379", expecting: "2576980379") + self.addTest(lhs: "0", rhs: "-2576980379", expecting: "-2576980379") + self.addTest(lhs: "0", rhs: "1717986920", expecting: "1717986920") + self.addTest(lhs: "0", rhs: "-1717986920", expecting: "-1717986920") + self.addTest(lhs: "0", rhs: "858993461", expecting: "858993461") + self.addTest(lhs: "0", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "8589934593") + self.addTest(lhs: "1", rhs: "-8589934592", expecting: "-8589934591") + self.addTest(lhs: "1", rhs: "7730941133", expecting: "7730941134") + self.addTest(lhs: "1", rhs: "-7730941133", expecting: "-7730941132") + self.addTest(lhs: "1", rhs: "6871947674", expecting: "6871947675") + self.addTest(lhs: "1", rhs: "-6871947674", expecting: "-6871947673") + self.addTest(lhs: "1", rhs: "6012954215", expecting: "6012954216") + self.addTest(lhs: "1", rhs: "-6012954215", expecting: "-6012954214") + self.addTest(lhs: "1", rhs: "5153960756", expecting: "5153960757") + self.addTest(lhs: "1", rhs: "-5153960756", expecting: "-5153960755") + self.addTest(lhs: "1", rhs: "4294967297", expecting: "4294967298") + self.addTest(lhs: "1", rhs: "-4294967297", expecting: "-4294967296") + self.addTest(lhs: "1", rhs: "3435973838", expecting: "3435973839") + self.addTest(lhs: "1", rhs: "-3435973838", expecting: "-3435973837") + self.addTest(lhs: "1", rhs: "2576980379", expecting: "2576980380") + self.addTest(lhs: "1", rhs: "-2576980379", expecting: "-2576980378") + self.addTest(lhs: "1", rhs: "1717986920", expecting: "1717986921") + self.addTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986919") + self.addTest(lhs: "1", rhs: "858993461", expecting: "858993462") + self.addTest(lhs: "1", rhs: "-858993461", expecting: "-858993460") + 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: "8589934592", expecting: "8589934591") + self.addTest(lhs: "-1", rhs: "-8589934592", expecting: "-8589934593") + self.addTest(lhs: "-1", rhs: "7730941133", expecting: "7730941132") + self.addTest(lhs: "-1", rhs: "-7730941133", expecting: "-7730941134") + self.addTest(lhs: "-1", rhs: "6871947674", expecting: "6871947673") + self.addTest(lhs: "-1", rhs: "-6871947674", expecting: "-6871947675") + self.addTest(lhs: "-1", rhs: "6012954215", expecting: "6012954214") + self.addTest(lhs: "-1", rhs: "-6012954215", expecting: "-6012954216") + self.addTest(lhs: "-1", rhs: "5153960756", expecting: "5153960755") + self.addTest(lhs: "-1", rhs: "-5153960756", expecting: "-5153960757") + self.addTest(lhs: "-1", rhs: "4294967297", expecting: "4294967296") + self.addTest(lhs: "-1", rhs: "-4294967297", expecting: "-4294967298") + self.addTest(lhs: "-1", rhs: "3435973838", expecting: "3435973837") + self.addTest(lhs: "-1", rhs: "-3435973838", expecting: "-3435973839") + self.addTest(lhs: "-1", rhs: "2576980379", expecting: "2576980378") + self.addTest(lhs: "-1", rhs: "-2576980379", expecting: "-2576980380") + self.addTest(lhs: "-1", rhs: "1717986920", expecting: "1717986919") + self.addTest(lhs: "-1", rhs: "-1717986920", expecting: "-1717986921") + self.addTest(lhs: "-1", rhs: "858993461", expecting: "858993460") + self.addTest(lhs: "-1", rhs: "-858993461", expecting: "-858993462") + 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: "8589934592", expecting: "18446744082299486207") + self.addTest(lhs: "18446744073709551615", rhs: "-8589934592", expecting: "18446744065119617023") + self.addTest(lhs: "18446744073709551615", rhs: "7730941133", expecting: "18446744081440492748") + self.addTest(lhs: "18446744073709551615", rhs: "-7730941133", expecting: "18446744065978610482") + self.addTest(lhs: "18446744073709551615", rhs: "6871947674", expecting: "18446744080581499289") + self.addTest(lhs: "18446744073709551615", rhs: "-6871947674", expecting: "18446744066837603941") + self.addTest(lhs: "18446744073709551615", rhs: "6012954215", expecting: "18446744079722505830") + self.addTest(lhs: "18446744073709551615", rhs: "-6012954215", expecting: "18446744067696597400") + self.addTest(lhs: "18446744073709551615", rhs: "5153960756", expecting: "18446744078863512371") + self.addTest(lhs: "18446744073709551615", rhs: "-5153960756", expecting: "18446744068555590859") + self.addTest(lhs: "18446744073709551615", rhs: "4294967297", expecting: "18446744078004518912") + self.addTest(lhs: "18446744073709551615", rhs: "-4294967297", expecting: "18446744069414584318") + self.addTest(lhs: "18446744073709551615", rhs: "3435973838", expecting: "18446744077145525453") + self.addTest(lhs: "18446744073709551615", rhs: "-3435973838", expecting: "18446744070273577777") + self.addTest(lhs: "18446744073709551615", rhs: "2576980379", expecting: "18446744076286531994") + self.addTest(lhs: "18446744073709551615", rhs: "-2576980379", expecting: "18446744071132571236") + self.addTest(lhs: "18446744073709551615", rhs: "1717986920", expecting: "18446744075427538535") + self.addTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "18446744071991564695") + self.addTest(lhs: "18446744073709551615", rhs: "858993461", expecting: "18446744074568545076") + self.addTest(lhs: "18446744073709551615", rhs: "-858993461", expecting: "18446744072850558154") + 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: "8589934592", expecting: "-18446744065119617023") + self.addTest(lhs: "-18446744073709551615", rhs: "-8589934592", expecting: "-18446744082299486207") + self.addTest(lhs: "-18446744073709551615", rhs: "7730941133", expecting: "-18446744065978610482") + self.addTest(lhs: "-18446744073709551615", rhs: "-7730941133", expecting: "-18446744081440492748") + self.addTest(lhs: "-18446744073709551615", rhs: "6871947674", expecting: "-18446744066837603941") + self.addTest(lhs: "-18446744073709551615", rhs: "-6871947674", expecting: "-18446744080581499289") + self.addTest(lhs: "-18446744073709551615", rhs: "6012954215", expecting: "-18446744067696597400") + self.addTest(lhs: "-18446744073709551615", rhs: "-6012954215", expecting: "-18446744079722505830") + self.addTest(lhs: "-18446744073709551615", rhs: "5153960756", expecting: "-18446744068555590859") + self.addTest(lhs: "-18446744073709551615", rhs: "-5153960756", expecting: "-18446744078863512371") + self.addTest(lhs: "-18446744073709551615", rhs: "4294967297", expecting: "-18446744069414584318") + self.addTest(lhs: "-18446744073709551615", rhs: "-4294967297", expecting: "-18446744078004518912") + self.addTest(lhs: "-18446744073709551615", rhs: "3435973838", expecting: "-18446744070273577777") + self.addTest(lhs: "-18446744073709551615", rhs: "-3435973838", expecting: "-18446744077145525453") + self.addTest(lhs: "-18446744073709551615", rhs: "2576980379", expecting: "-18446744071132571236") + self.addTest(lhs: "-18446744073709551615", rhs: "-2576980379", expecting: "-18446744076286531994") + self.addTest(lhs: "-18446744073709551615", rhs: "1717986920", expecting: "-18446744071991564695") + self.addTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "-18446744075427538535") + self.addTest(lhs: "-18446744073709551615", rhs: "858993461", expecting: "-18446744072850558154") + self.addTest(lhs: "-18446744073709551615", rhs: "-858993461", expecting: "-18446744074568545076") + 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: "8589934592", expecting: "18446744082299486209") + self.addTest(lhs: "18446744073709551617", rhs: "-8589934592", expecting: "18446744065119617025") + self.addTest(lhs: "18446744073709551617", rhs: "7730941133", expecting: "18446744081440492750") + self.addTest(lhs: "18446744073709551617", rhs: "-7730941133", expecting: "18446744065978610484") + self.addTest(lhs: "18446744073709551617", rhs: "6871947674", expecting: "18446744080581499291") + self.addTest(lhs: "18446744073709551617", rhs: "-6871947674", expecting: "18446744066837603943") + self.addTest(lhs: "18446744073709551617", rhs: "6012954215", expecting: "18446744079722505832") + self.addTest(lhs: "18446744073709551617", rhs: "-6012954215", expecting: "18446744067696597402") + self.addTest(lhs: "18446744073709551617", rhs: "5153960756", expecting: "18446744078863512373") + self.addTest(lhs: "18446744073709551617", rhs: "-5153960756", expecting: "18446744068555590861") + self.addTest(lhs: "18446744073709551617", rhs: "4294967297", expecting: "18446744078004518914") + self.addTest(lhs: "18446744073709551617", rhs: "-4294967297", expecting: "18446744069414584320") + self.addTest(lhs: "18446744073709551617", rhs: "3435973838", expecting: "18446744077145525455") + self.addTest(lhs: "18446744073709551617", rhs: "-3435973838", expecting: "18446744070273577779") + self.addTest(lhs: "18446744073709551617", rhs: "2576980379", expecting: "18446744076286531996") + self.addTest(lhs: "18446744073709551617", rhs: "-2576980379", expecting: "18446744071132571238") + self.addTest(lhs: "18446744073709551617", rhs: "1717986920", expecting: "18446744075427538537") + self.addTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "18446744071991564697") + self.addTest(lhs: "18446744073709551617", rhs: "858993461", expecting: "18446744074568545078") + self.addTest(lhs: "18446744073709551617", rhs: "-858993461", expecting: "18446744072850558156") + 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: "8589934592", expecting: "-18446744065119617025") + self.addTest(lhs: "-18446744073709551617", rhs: "-8589934592", expecting: "-18446744082299486209") + self.addTest(lhs: "-18446744073709551617", rhs: "7730941133", expecting: "-18446744065978610484") + self.addTest(lhs: "-18446744073709551617", rhs: "-7730941133", expecting: "-18446744081440492750") + self.addTest(lhs: "-18446744073709551617", rhs: "6871947674", expecting: "-18446744066837603943") + self.addTest(lhs: "-18446744073709551617", rhs: "-6871947674", expecting: "-18446744080581499291") + self.addTest(lhs: "-18446744073709551617", rhs: "6012954215", expecting: "-18446744067696597402") + self.addTest(lhs: "-18446744073709551617", rhs: "-6012954215", expecting: "-18446744079722505832") + self.addTest(lhs: "-18446744073709551617", rhs: "5153960756", expecting: "-18446744068555590861") + self.addTest(lhs: "-18446744073709551617", rhs: "-5153960756", expecting: "-18446744078863512373") + self.addTest(lhs: "-18446744073709551617", rhs: "4294967297", expecting: "-18446744069414584320") + self.addTest(lhs: "-18446744073709551617", rhs: "-4294967297", expecting: "-18446744078004518914") + self.addTest(lhs: "-18446744073709551617", rhs: "3435973838", expecting: "-18446744070273577779") + self.addTest(lhs: "-18446744073709551617", rhs: "-3435973838", expecting: "-18446744077145525455") + self.addTest(lhs: "-18446744073709551617", rhs: "2576980379", expecting: "-18446744071132571238") + self.addTest(lhs: "-18446744073709551617", rhs: "-2576980379", expecting: "-18446744076286531996") + self.addTest(lhs: "-18446744073709551617", rhs: "1717986920", expecting: "-18446744071991564697") + self.addTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "-18446744075427538537") + self.addTest(lhs: "-18446744073709551617", rhs: "858993461", expecting: "-18446744072850558156") + self.addTest(lhs: "-18446744073709551617", rhs: "-858993461", expecting: "-18446744074568545078") + 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: "8589934592", expecting: "340282366920938463481821351514067697666") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "340282366920938463481821351496887828482") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "7730941133", expecting: "340282366920938463481821351513208704207") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "340282366920938463481821351497746821941") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "6871947674", expecting: "340282366920938463481821351512349710748") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "340282366920938463481821351498605815400") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "6012954215", expecting: "340282366920938463481821351511490717289") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "340282366920938463481821351499464808859") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "5153960756", expecting: "340282366920938463481821351510631723830") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "340282366920938463481821351500323802318") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "4294967297", expecting: "340282366920938463481821351509772730371") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "340282366920938463481821351501182795777") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "3435973838", expecting: "340282366920938463481821351508913736912") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "340282366920938463481821351502041789236") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "2576980379", expecting: "340282366920938463481821351508054743453") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "340282366920938463481821351502900782695") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986920", expecting: "340282366920938463481821351507195749994") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "340282366920938463481821351503759776154") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "858993461", expecting: "340282366920938463481821351506336756535") + self.addTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993461", expecting: "340282366920938463481821351504618769613") + 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: "8589934592", expecting: "-340282366920938463481821351496887828482") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "-340282366920938463481821351514067697666") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "7730941133", expecting: "-340282366920938463481821351497746821941") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "-340282366920938463481821351513208704207") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "6871947674", expecting: "-340282366920938463481821351498605815400") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "-340282366920938463481821351512349710748") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "6012954215", expecting: "-340282366920938463481821351499464808859") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "-340282366920938463481821351511490717289") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "5153960756", expecting: "-340282366920938463481821351500323802318") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "-340282366920938463481821351510631723830") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "4294967297", expecting: "-340282366920938463481821351501182795777") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "-340282366920938463481821351509772730371") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "3435973838", expecting: "-340282366920938463481821351502041789236") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "-340282366920938463481821351508913736912") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "2576980379", expecting: "-340282366920938463481821351502900782695") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "-340282366920938463481821351508054743453") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986920", expecting: "-340282366920938463481821351503759776154") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-340282366920938463481821351507195749994") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993461", expecting: "-340282366920938463481821351504618769613") + self.addTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993461", expecting: "-340282366920938463481821351506336756535") + 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: "8589934592", expecting: "6277101735386680764516354157049543343010657915262451318789") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "6277101735386680764516354157049543343010657915245271449605") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "6277101735386680764516354157049543343010657915261592325330") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "6277101735386680764516354157049543343010657915246130443064") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "6277101735386680764516354157049543343010657915260733331871") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "6277101735386680764516354157049543343010657915246989436523") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "6277101735386680764516354157049543343010657915259874338412") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "6277101735386680764516354157049543343010657915247848429982") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "6277101735386680764516354157049543343010657915259015344953") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "6277101735386680764516354157049543343010657915248707423441") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "6277101735386680764516354157049543343010657915258156351494") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "6277101735386680764516354157049543343010657915249566416900") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "6277101735386680764516354157049543343010657915257297358035") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "6277101735386680764516354157049543343010657915250425410359") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "6277101735386680764516354157049543343010657915256438364576") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "6277101735386680764516354157049543343010657915251284403818") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "6277101735386680764516354157049543343010657915255579371117") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "6277101735386680764516354157049543343010657915252143397277") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "6277101735386680764516354157049543343010657915254720377658") + self.addTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "6277101735386680764516354157049543343010657915253002390736") + 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: "8589934592", expecting: "-6277101735386680764516354157049543343010657915245271449605") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "-6277101735386680764516354157049543343010657915262451318789") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "-6277101735386680764516354157049543343010657915246130443064") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "-6277101735386680764516354157049543343010657915261592325330") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "-6277101735386680764516354157049543343010657915246989436523") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "-6277101735386680764516354157049543343010657915260733331871") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "-6277101735386680764516354157049543343010657915247848429982") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "-6277101735386680764516354157049543343010657915259874338412") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "-6277101735386680764516354157049543343010657915248707423441") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "-6277101735386680764516354157049543343010657915259015344953") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "-6277101735386680764516354157049543343010657915249566416900") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "-6277101735386680764516354157049543343010657915258156351494") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "-6277101735386680764516354157049543343010657915250425410359") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "-6277101735386680764516354157049543343010657915257297358035") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "-6277101735386680764516354157049543343010657915251284403818") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "-6277101735386680764516354157049543343010657915256438364576") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "-6277101735386680764516354157049543343010657915252143397277") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-6277101735386680764516354157049543343010657915255579371117") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "-6277101735386680764516354157049543343010657915253002390736") + self.addTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "-6277101735386680764516354157049543343010657915254720377658") + 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: "8589934592", expecting: "18446744082299486215") + self.addTest(lhs: "18446744073709551623", rhs: "-8589934592", expecting: "18446744065119617031") + self.addTest(lhs: "18446744073709551623", rhs: "7730941133", expecting: "18446744081440492756") + self.addTest(lhs: "18446744073709551623", rhs: "-7730941133", expecting: "18446744065978610490") + self.addTest(lhs: "18446744073709551623", rhs: "6871947674", expecting: "18446744080581499297") + self.addTest(lhs: "18446744073709551623", rhs: "-6871947674", expecting: "18446744066837603949") + self.addTest(lhs: "18446744073709551623", rhs: "6012954215", expecting: "18446744079722505838") + self.addTest(lhs: "18446744073709551623", rhs: "-6012954215", expecting: "18446744067696597408") + self.addTest(lhs: "18446744073709551623", rhs: "5153960756", expecting: "18446744078863512379") + self.addTest(lhs: "18446744073709551623", rhs: "-5153960756", expecting: "18446744068555590867") + self.addTest(lhs: "18446744073709551623", rhs: "4294967297", expecting: "18446744078004518920") + self.addTest(lhs: "18446744073709551623", rhs: "-4294967297", expecting: "18446744069414584326") + self.addTest(lhs: "18446744073709551623", rhs: "3435973838", expecting: "18446744077145525461") + self.addTest(lhs: "18446744073709551623", rhs: "-3435973838", expecting: "18446744070273577785") + self.addTest(lhs: "18446744073709551623", rhs: "2576980379", expecting: "18446744076286532002") + self.addTest(lhs: "18446744073709551623", rhs: "-2576980379", expecting: "18446744071132571244") + self.addTest(lhs: "18446744073709551623", rhs: "1717986920", expecting: "18446744075427538543") + self.addTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "18446744071991564703") + self.addTest(lhs: "18446744073709551623", rhs: "858993461", expecting: "18446744074568545084") + self.addTest(lhs: "18446744073709551623", rhs: "-858993461", expecting: "18446744072850558162") + 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: "8589934592", expecting: "-18446744065119617031") + self.addTest(lhs: "-18446744073709551623", rhs: "-8589934592", expecting: "-18446744082299486215") + self.addTest(lhs: "-18446744073709551623", rhs: "7730941133", expecting: "-18446744065978610490") + self.addTest(lhs: "-18446744073709551623", rhs: "-7730941133", expecting: "-18446744081440492756") + self.addTest(lhs: "-18446744073709551623", rhs: "6871947674", expecting: "-18446744066837603949") + self.addTest(lhs: "-18446744073709551623", rhs: "-6871947674", expecting: "-18446744080581499297") + self.addTest(lhs: "-18446744073709551623", rhs: "6012954215", expecting: "-18446744067696597408") + self.addTest(lhs: "-18446744073709551623", rhs: "-6012954215", expecting: "-18446744079722505838") + self.addTest(lhs: "-18446744073709551623", rhs: "5153960756", expecting: "-18446744068555590867") + self.addTest(lhs: "-18446744073709551623", rhs: "-5153960756", expecting: "-18446744078863512379") + self.addTest(lhs: "-18446744073709551623", rhs: "4294967297", expecting: "-18446744069414584326") + self.addTest(lhs: "-18446744073709551623", rhs: "-4294967297", expecting: "-18446744078004518920") + self.addTest(lhs: "-18446744073709551623", rhs: "3435973838", expecting: "-18446744070273577785") + self.addTest(lhs: "-18446744073709551623", rhs: "-3435973838", expecting: "-18446744077145525461") + self.addTest(lhs: "-18446744073709551623", rhs: "2576980379", expecting: "-18446744071132571244") + self.addTest(lhs: "-18446744073709551623", rhs: "-2576980379", expecting: "-18446744076286532002") + self.addTest(lhs: "-18446744073709551623", rhs: "1717986920", expecting: "-18446744071991564703") + self.addTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "-18446744075427538543") + self.addTest(lhs: "-18446744073709551623", rhs: "858993461", expecting: "-18446744072850558162") + self.addTest(lhs: "-18446744073709551623", rhs: "-858993461", expecting: "-18446744074568545084") + 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: "8589934592", expecting: "340282366920938463592501815956325007362") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "340282366920938463592501815939145138178") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "7730941133", expecting: "340282366920938463592501815955466013903") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "340282366920938463592501815940004131637") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "6871947674", expecting: "340282366920938463592501815954607020444") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "340282366920938463592501815940863125096") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "6012954215", expecting: "340282366920938463592501815953748026985") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "340282366920938463592501815941722118555") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "5153960756", expecting: "340282366920938463592501815952889033526") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "340282366920938463592501815942581112014") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "4294967297", expecting: "340282366920938463592501815952030040067") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "340282366920938463592501815943440105473") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "3435973838", expecting: "340282366920938463592501815951171046608") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "340282366920938463592501815944299098932") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "2576980379", expecting: "340282366920938463592501815950312053149") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "340282366920938463592501815945158092391") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986920", expecting: "340282366920938463592501815949453059690") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "340282366920938463592501815946017085850") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "858993461", expecting: "340282366920938463592501815948594066231") + self.addTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993461", expecting: "340282366920938463592501815946876079309") + 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: "8589934592", expecting: "-340282366920938463592501815939145138178") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "-340282366920938463592501815956325007362") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "7730941133", expecting: "-340282366920938463592501815940004131637") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "-340282366920938463592501815955466013903") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "6871947674", expecting: "-340282366920938463592501815940863125096") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "-340282366920938463592501815954607020444") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "6012954215", expecting: "-340282366920938463592501815941722118555") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "-340282366920938463592501815953748026985") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "5153960756", expecting: "-340282366920938463592501815942581112014") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "-340282366920938463592501815952889033526") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "4294967297", expecting: "-340282366920938463592501815943440105473") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "-340282366920938463592501815952030040067") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "3435973838", expecting: "-340282366920938463592501815944299098932") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "-340282366920938463592501815951171046608") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "2576980379", expecting: "-340282366920938463592501815945158092391") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "-340282366920938463592501815950312053149") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986920", expecting: "-340282366920938463592501815946017085850") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-340282366920938463592501815949453059690") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993461", expecting: "-340282366920938463592501815946876079309") + self.addTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993461", expecting: "-340282366920938463592501815948594066231") + 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: "8589934592", expecting: "6277101735386680766558048358575174123680225095410803277835") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "6277101735386680766558048358575174123680225095393623408651") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "6277101735386680766558048358575174123680225095409944284376") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "6277101735386680766558048358575174123680225095394482402110") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "6277101735386680766558048358575174123680225095409085290917") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "6277101735386680766558048358575174123680225095395341395569") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "6277101735386680766558048358575174123680225095408226297458") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "6277101735386680766558048358575174123680225095396200389028") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "6277101735386680766558048358575174123680225095407367303999") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "6277101735386680766558048358575174123680225095397059382487") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "6277101735386680766558048358575174123680225095406508310540") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "6277101735386680766558048358575174123680225095397918375946") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "6277101735386680766558048358575174123680225095405649317081") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "6277101735386680766558048358575174123680225095398777369405") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "6277101735386680766558048358575174123680225095404790323622") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "6277101735386680766558048358575174123680225095399636362864") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "6277101735386680766558048358575174123680225095403931330163") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "6277101735386680766558048358575174123680225095400495356323") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "6277101735386680766558048358575174123680225095403072336704") + self.addTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "6277101735386680766558048358575174123680225095401354349782") + 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: "8589934592", expecting: "-6277101735386680766558048358575174123680225095393623408651") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "-6277101735386680766558048358575174123680225095410803277835") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "-6277101735386680766558048358575174123680225095394482402110") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "-6277101735386680766558048358575174123680225095409944284376") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "-6277101735386680766558048358575174123680225095395341395569") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "-6277101735386680766558048358575174123680225095409085290917") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "-6277101735386680766558048358575174123680225095396200389028") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "-6277101735386680766558048358575174123680225095408226297458") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "-6277101735386680766558048358575174123680225095397059382487") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "-6277101735386680766558048358575174123680225095407367303999") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "-6277101735386680766558048358575174123680225095397918375946") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "-6277101735386680766558048358575174123680225095406508310540") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "-6277101735386680766558048358575174123680225095398777369405") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "-6277101735386680766558048358575174123680225095405649317081") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "-6277101735386680766558048358575174123680225095399636362864") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "-6277101735386680766558048358575174123680225095404790323622") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "-6277101735386680766558048358575174123680225095400495356323") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-6277101735386680766558048358575174123680225095403931330163") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "-6277101735386680766558048358575174123680225095401354349782") + self.addTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "-6277101735386680766558048358575174123680225095403072336704") + 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: "8589934592", expecting: "18446744082299486221") + self.addTest(lhs: "18446744073709551629", rhs: "-8589934592", expecting: "18446744065119617037") + self.addTest(lhs: "18446744073709551629", rhs: "7730941133", expecting: "18446744081440492762") + self.addTest(lhs: "18446744073709551629", rhs: "-7730941133", expecting: "18446744065978610496") + self.addTest(lhs: "18446744073709551629", rhs: "6871947674", expecting: "18446744080581499303") + self.addTest(lhs: "18446744073709551629", rhs: "-6871947674", expecting: "18446744066837603955") + self.addTest(lhs: "18446744073709551629", rhs: "6012954215", expecting: "18446744079722505844") + self.addTest(lhs: "18446744073709551629", rhs: "-6012954215", expecting: "18446744067696597414") + self.addTest(lhs: "18446744073709551629", rhs: "5153960756", expecting: "18446744078863512385") + self.addTest(lhs: "18446744073709551629", rhs: "-5153960756", expecting: "18446744068555590873") + self.addTest(lhs: "18446744073709551629", rhs: "4294967297", expecting: "18446744078004518926") + self.addTest(lhs: "18446744073709551629", rhs: "-4294967297", expecting: "18446744069414584332") + self.addTest(lhs: "18446744073709551629", rhs: "3435973838", expecting: "18446744077145525467") + self.addTest(lhs: "18446744073709551629", rhs: "-3435973838", expecting: "18446744070273577791") + self.addTest(lhs: "18446744073709551629", rhs: "2576980379", expecting: "18446744076286532008") + self.addTest(lhs: "18446744073709551629", rhs: "-2576980379", expecting: "18446744071132571250") + self.addTest(lhs: "18446744073709551629", rhs: "1717986920", expecting: "18446744075427538549") + self.addTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "18446744071991564709") + self.addTest(lhs: "18446744073709551629", rhs: "858993461", expecting: "18446744074568545090") + self.addTest(lhs: "18446744073709551629", rhs: "-858993461", expecting: "18446744072850558168") + 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: "8589934592", expecting: "-18446744065119617037") + self.addTest(lhs: "-18446744073709551629", rhs: "-8589934592", expecting: "-18446744082299486221") + self.addTest(lhs: "-18446744073709551629", rhs: "7730941133", expecting: "-18446744065978610496") + self.addTest(lhs: "-18446744073709551629", rhs: "-7730941133", expecting: "-18446744081440492762") + self.addTest(lhs: "-18446744073709551629", rhs: "6871947674", expecting: "-18446744066837603955") + self.addTest(lhs: "-18446744073709551629", rhs: "-6871947674", expecting: "-18446744080581499303") + self.addTest(lhs: "-18446744073709551629", rhs: "6012954215", expecting: "-18446744067696597414") + self.addTest(lhs: "-18446744073709551629", rhs: "-6012954215", expecting: "-18446744079722505844") + self.addTest(lhs: "-18446744073709551629", rhs: "5153960756", expecting: "-18446744068555590873") + self.addTest(lhs: "-18446744073709551629", rhs: "-5153960756", expecting: "-18446744078863512385") + self.addTest(lhs: "-18446744073709551629", rhs: "4294967297", expecting: "-18446744069414584332") + self.addTest(lhs: "-18446744073709551629", rhs: "-4294967297", expecting: "-18446744078004518926") + self.addTest(lhs: "-18446744073709551629", rhs: "3435973838", expecting: "-18446744070273577791") + self.addTest(lhs: "-18446744073709551629", rhs: "-3435973838", expecting: "-18446744077145525467") + self.addTest(lhs: "-18446744073709551629", rhs: "2576980379", expecting: "-18446744071132571250") + self.addTest(lhs: "-18446744073709551629", rhs: "-2576980379", expecting: "-18446744076286532008") + self.addTest(lhs: "-18446744073709551629", rhs: "1717986920", expecting: "-18446744071991564709") + self.addTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "-18446744075427538549") + self.addTest(lhs: "-18446744073709551629", rhs: "858993461", expecting: "-18446744072850558168") + self.addTest(lhs: "-18446744073709551629", rhs: "-858993461", expecting: "-18446744074568545090") + 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: "8589934592", expecting: "340282366920938463703182280398582317058") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "340282366920938463703182280381402447874") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "7730941133", expecting: "340282366920938463703182280397723323599") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "340282366920938463703182280382261441333") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "6871947674", expecting: "340282366920938463703182280396864330140") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "340282366920938463703182280383120434792") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "6012954215", expecting: "340282366920938463703182280396005336681") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "340282366920938463703182280383979428251") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "5153960756", expecting: "340282366920938463703182280395146343222") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "340282366920938463703182280384838421710") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "4294967297", expecting: "340282366920938463703182280394287349763") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "340282366920938463703182280385697415169") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "3435973838", expecting: "340282366920938463703182280393428356304") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "340282366920938463703182280386556408628") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "2576980379", expecting: "340282366920938463703182280392569362845") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "340282366920938463703182280387415402087") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986920", expecting: "340282366920938463703182280391710369386") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "340282366920938463703182280388274395546") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "858993461", expecting: "340282366920938463703182280390851375927") + self.addTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993461", expecting: "340282366920938463703182280389133389005") + 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: "8589934592", expecting: "-340282366920938463703182280381402447874") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "-340282366920938463703182280398582317058") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "7730941133", expecting: "-340282366920938463703182280382261441333") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "-340282366920938463703182280397723323599") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "6871947674", expecting: "-340282366920938463703182280383120434792") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "-340282366920938463703182280396864330140") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "6012954215", expecting: "-340282366920938463703182280383979428251") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "-340282366920938463703182280396005336681") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "5153960756", expecting: "-340282366920938463703182280384838421710") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "-340282366920938463703182280395146343222") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "4294967297", expecting: "-340282366920938463703182280385697415169") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "-340282366920938463703182280394287349763") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "3435973838", expecting: "-340282366920938463703182280386556408628") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "-340282366920938463703182280393428356304") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "2576980379", expecting: "-340282366920938463703182280387415402087") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "-340282366920938463703182280392569362845") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986920", expecting: "-340282366920938463703182280388274395546") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-340282366920938463703182280391710369386") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993461", expecting: "-340282366920938463703182280389133389005") + self.addTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993461", expecting: "-340282366920938463703182280390851375927") + 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: "8589934592", expecting: "6277101735386680768599742560100804904349792275559155236881") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "6277101735386680768599742560100804904349792275541975367697") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "6277101735386680768599742560100804904349792275558296243422") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "6277101735386680768599742560100804904349792275542834361156") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "6277101735386680768599742560100804904349792275557437249963") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "6277101735386680768599742560100804904349792275543693354615") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "6277101735386680768599742560100804904349792275556578256504") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "6277101735386680768599742560100804904349792275544552348074") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "6277101735386680768599742560100804904349792275555719263045") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "6277101735386680768599742560100804904349792275545411341533") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "6277101735386680768599742560100804904349792275554860269586") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "6277101735386680768599742560100804904349792275546270334992") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "6277101735386680768599742560100804904349792275554001276127") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "6277101735386680768599742560100804904349792275547129328451") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "6277101735386680768599742560100804904349792275553142282668") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "6277101735386680768599742560100804904349792275547988321910") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "6277101735386680768599742560100804904349792275552283289209") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "6277101735386680768599742560100804904349792275548847315369") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "6277101735386680768599742560100804904349792275551424295750") + self.addTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "6277101735386680768599742560100804904349792275549706308828") + 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: "8589934592", expecting: "-6277101735386680768599742560100804904349792275541975367697") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "-6277101735386680768599742560100804904349792275559155236881") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "-6277101735386680768599742560100804904349792275542834361156") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "-6277101735386680768599742560100804904349792275558296243422") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "-6277101735386680768599742560100804904349792275543693354615") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "-6277101735386680768599742560100804904349792275557437249963") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "-6277101735386680768599742560100804904349792275544552348074") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "-6277101735386680768599742560100804904349792275556578256504") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "-6277101735386680768599742560100804904349792275545411341533") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "-6277101735386680768599742560100804904349792275555719263045") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "-6277101735386680768599742560100804904349792275546270334992") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "-6277101735386680768599742560100804904349792275554860269586") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "-6277101735386680768599742560100804904349792275547129328451") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "-6277101735386680768599742560100804904349792275554001276127") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "-6277101735386680768599742560100804904349792275547988321910") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "-6277101735386680768599742560100804904349792275553142282668") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "-6277101735386680768599742560100804904349792275548847315369") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-6277101735386680768599742560100804904349792275552283289209") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "-6277101735386680768599742560100804904349792275549706308828") + self.addTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "-6277101735386680768599742560100804904349792275551424295750") + 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: "8589934592", expecting: "18446744082299486227") + self.addTest(lhs: "18446744073709551635", rhs: "-8589934592", expecting: "18446744065119617043") + self.addTest(lhs: "18446744073709551635", rhs: "7730941133", expecting: "18446744081440492768") + self.addTest(lhs: "18446744073709551635", rhs: "-7730941133", expecting: "18446744065978610502") + self.addTest(lhs: "18446744073709551635", rhs: "6871947674", expecting: "18446744080581499309") + self.addTest(lhs: "18446744073709551635", rhs: "-6871947674", expecting: "18446744066837603961") + self.addTest(lhs: "18446744073709551635", rhs: "6012954215", expecting: "18446744079722505850") + self.addTest(lhs: "18446744073709551635", rhs: "-6012954215", expecting: "18446744067696597420") + self.addTest(lhs: "18446744073709551635", rhs: "5153960756", expecting: "18446744078863512391") + self.addTest(lhs: "18446744073709551635", rhs: "-5153960756", expecting: "18446744068555590879") + self.addTest(lhs: "18446744073709551635", rhs: "4294967297", expecting: "18446744078004518932") + self.addTest(lhs: "18446744073709551635", rhs: "-4294967297", expecting: "18446744069414584338") + self.addTest(lhs: "18446744073709551635", rhs: "3435973838", expecting: "18446744077145525473") + self.addTest(lhs: "18446744073709551635", rhs: "-3435973838", expecting: "18446744070273577797") + self.addTest(lhs: "18446744073709551635", rhs: "2576980379", expecting: "18446744076286532014") + self.addTest(lhs: "18446744073709551635", rhs: "-2576980379", expecting: "18446744071132571256") + self.addTest(lhs: "18446744073709551635", rhs: "1717986920", expecting: "18446744075427538555") + self.addTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "18446744071991564715") + self.addTest(lhs: "18446744073709551635", rhs: "858993461", expecting: "18446744074568545096") + self.addTest(lhs: "18446744073709551635", rhs: "-858993461", expecting: "18446744072850558174") + 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: "8589934592", expecting: "-18446744065119617043") + self.addTest(lhs: "-18446744073709551635", rhs: "-8589934592", expecting: "-18446744082299486227") + self.addTest(lhs: "-18446744073709551635", rhs: "7730941133", expecting: "-18446744065978610502") + self.addTest(lhs: "-18446744073709551635", rhs: "-7730941133", expecting: "-18446744081440492768") + self.addTest(lhs: "-18446744073709551635", rhs: "6871947674", expecting: "-18446744066837603961") + self.addTest(lhs: "-18446744073709551635", rhs: "-6871947674", expecting: "-18446744080581499309") + self.addTest(lhs: "-18446744073709551635", rhs: "6012954215", expecting: "-18446744067696597420") + self.addTest(lhs: "-18446744073709551635", rhs: "-6012954215", expecting: "-18446744079722505850") + self.addTest(lhs: "-18446744073709551635", rhs: "5153960756", expecting: "-18446744068555590879") + self.addTest(lhs: "-18446744073709551635", rhs: "-5153960756", expecting: "-18446744078863512391") + self.addTest(lhs: "-18446744073709551635", rhs: "4294967297", expecting: "-18446744069414584338") + self.addTest(lhs: "-18446744073709551635", rhs: "-4294967297", expecting: "-18446744078004518932") + self.addTest(lhs: "-18446744073709551635", rhs: "3435973838", expecting: "-18446744070273577797") + self.addTest(lhs: "-18446744073709551635", rhs: "-3435973838", expecting: "-18446744077145525473") + self.addTest(lhs: "-18446744073709551635", rhs: "2576980379", expecting: "-18446744071132571256") + self.addTest(lhs: "-18446744073709551635", rhs: "-2576980379", expecting: "-18446744076286532014") + self.addTest(lhs: "-18446744073709551635", rhs: "1717986920", expecting: "-18446744071991564715") + self.addTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "-18446744075427538555") + self.addTest(lhs: "-18446744073709551635", rhs: "858993461", expecting: "-18446744072850558174") + self.addTest(lhs: "-18446744073709551635", rhs: "-858993461", expecting: "-18446744074568545096") + } + + func test_add_big_big() { + 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_int_int() { + 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: "8589934592", expecting: "-8589934592") + self.subTest(lhs: "0", rhs: "-8589934592", expecting: "8589934592") + self.subTest(lhs: "0", rhs: "7730941133", expecting: "-7730941133") + self.subTest(lhs: "0", rhs: "-7730941133", expecting: "7730941133") + self.subTest(lhs: "0", rhs: "6871947674", expecting: "-6871947674") + self.subTest(lhs: "0", rhs: "-6871947674", expecting: "6871947674") + self.subTest(lhs: "0", rhs: "6012954215", expecting: "-6012954215") + self.subTest(lhs: "0", rhs: "-6012954215", expecting: "6012954215") + self.subTest(lhs: "0", rhs: "5153960756", expecting: "-5153960756") + self.subTest(lhs: "0", rhs: "-5153960756", expecting: "5153960756") + self.subTest(lhs: "0", rhs: "4294967297", expecting: "-4294967297") + self.subTest(lhs: "0", rhs: "-4294967297", expecting: "4294967297") + self.subTest(lhs: "0", rhs: "3435973838", expecting: "-3435973838") + self.subTest(lhs: "0", rhs: "-3435973838", expecting: "3435973838") + self.subTest(lhs: "0", rhs: "2576980379", expecting: "-2576980379") + self.subTest(lhs: "0", rhs: "-2576980379", expecting: "2576980379") + self.subTest(lhs: "0", rhs: "1717986920", expecting: "-1717986920") + self.subTest(lhs: "0", rhs: "-1717986920", expecting: "1717986920") + self.subTest(lhs: "0", rhs: "858993461", expecting: "-858993461") + self.subTest(lhs: "0", rhs: "-858993461", expecting: "858993461") + 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: "8589934592", expecting: "-8589934591") + self.subTest(lhs: "1", rhs: "-8589934592", expecting: "8589934593") + self.subTest(lhs: "1", rhs: "7730941133", expecting: "-7730941132") + self.subTest(lhs: "1", rhs: "-7730941133", expecting: "7730941134") + self.subTest(lhs: "1", rhs: "6871947674", expecting: "-6871947673") + self.subTest(lhs: "1", rhs: "-6871947674", expecting: "6871947675") + self.subTest(lhs: "1", rhs: "6012954215", expecting: "-6012954214") + self.subTest(lhs: "1", rhs: "-6012954215", expecting: "6012954216") + self.subTest(lhs: "1", rhs: "5153960756", expecting: "-5153960755") + self.subTest(lhs: "1", rhs: "-5153960756", expecting: "5153960757") + self.subTest(lhs: "1", rhs: "4294967297", expecting: "-4294967296") + self.subTest(lhs: "1", rhs: "-4294967297", expecting: "4294967298") + self.subTest(lhs: "1", rhs: "3435973838", expecting: "-3435973837") + self.subTest(lhs: "1", rhs: "-3435973838", expecting: "3435973839") + self.subTest(lhs: "1", rhs: "2576980379", expecting: "-2576980378") + self.subTest(lhs: "1", rhs: "-2576980379", expecting: "2576980380") + self.subTest(lhs: "1", rhs: "1717986920", expecting: "-1717986919") + self.subTest(lhs: "1", rhs: "-1717986920", expecting: "1717986921") + self.subTest(lhs: "1", rhs: "858993461", expecting: "-858993460") + self.subTest(lhs: "1", rhs: "-858993461", expecting: "858993462") + 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: "8589934592", expecting: "-8589934593") + self.subTest(lhs: "-1", rhs: "-8589934592", expecting: "8589934591") + self.subTest(lhs: "-1", rhs: "7730941133", expecting: "-7730941134") + self.subTest(lhs: "-1", rhs: "-7730941133", expecting: "7730941132") + self.subTest(lhs: "-1", rhs: "6871947674", expecting: "-6871947675") + self.subTest(lhs: "-1", rhs: "-6871947674", expecting: "6871947673") + self.subTest(lhs: "-1", rhs: "6012954215", expecting: "-6012954216") + self.subTest(lhs: "-1", rhs: "-6012954215", expecting: "6012954214") + self.subTest(lhs: "-1", rhs: "5153960756", expecting: "-5153960757") + self.subTest(lhs: "-1", rhs: "-5153960756", expecting: "5153960755") + self.subTest(lhs: "-1", rhs: "4294967297", expecting: "-4294967298") + self.subTest(lhs: "-1", rhs: "-4294967297", expecting: "4294967296") + self.subTest(lhs: "-1", rhs: "3435973838", expecting: "-3435973839") + self.subTest(lhs: "-1", rhs: "-3435973838", expecting: "3435973837") + self.subTest(lhs: "-1", rhs: "2576980379", expecting: "-2576980380") + self.subTest(lhs: "-1", rhs: "-2576980379", expecting: "2576980378") + self.subTest(lhs: "-1", rhs: "1717986920", expecting: "-1717986921") + self.subTest(lhs: "-1", rhs: "-1717986920", expecting: "1717986919") + self.subTest(lhs: "-1", rhs: "858993461", expecting: "-858993462") + self.subTest(lhs: "-1", rhs: "-858993461", expecting: "858993460") + self.subTest(lhs: "8589934592", rhs: "0", expecting: "8589934592") + self.subTest(lhs: "8589934592", rhs: "1", expecting: "8589934591") + self.subTest(lhs: "8589934592", rhs: "-1", expecting: "8589934593") + self.subTest(lhs: "8589934592", rhs: "8589934592", expecting: "0") + self.subTest(lhs: "8589934592", rhs: "-8589934592", expecting: "17179869184") + self.subTest(lhs: "8589934592", rhs: "7730941133", expecting: "858993459") + self.subTest(lhs: "8589934592", rhs: "-7730941133", expecting: "16320875725") + self.subTest(lhs: "8589934592", rhs: "6871947674", expecting: "1717986918") + self.subTest(lhs: "8589934592", rhs: "-6871947674", expecting: "15461882266") + self.subTest(lhs: "8589934592", rhs: "6012954215", expecting: "2576980377") + self.subTest(lhs: "8589934592", rhs: "-6012954215", expecting: "14602888807") + self.subTest(lhs: "8589934592", rhs: "5153960756", expecting: "3435973836") + self.subTest(lhs: "8589934592", rhs: "-5153960756", expecting: "13743895348") + self.subTest(lhs: "8589934592", rhs: "4294967297", expecting: "4294967295") + self.subTest(lhs: "8589934592", rhs: "-4294967297", expecting: "12884901889") + self.subTest(lhs: "8589934592", rhs: "3435973838", expecting: "5153960754") + self.subTest(lhs: "8589934592", rhs: "-3435973838", expecting: "12025908430") + self.subTest(lhs: "8589934592", rhs: "2576980379", expecting: "6012954213") + self.subTest(lhs: "8589934592", rhs: "-2576980379", expecting: "11166914971") + self.subTest(lhs: "8589934592", rhs: "1717986920", expecting: "6871947672") + self.subTest(lhs: "8589934592", rhs: "-1717986920", expecting: "10307921512") + self.subTest(lhs: "8589934592", rhs: "858993461", expecting: "7730941131") + self.subTest(lhs: "8589934592", rhs: "-858993461", expecting: "9448928053") + self.subTest(lhs: "-8589934592", rhs: "0", expecting: "-8589934592") + self.subTest(lhs: "-8589934592", rhs: "1", expecting: "-8589934593") + self.subTest(lhs: "-8589934592", rhs: "-1", expecting: "-8589934591") + self.subTest(lhs: "-8589934592", rhs: "8589934592", expecting: "-17179869184") + self.subTest(lhs: "-8589934592", rhs: "-8589934592", expecting: "0") + self.subTest(lhs: "-8589934592", rhs: "7730941133", expecting: "-16320875725") + self.subTest(lhs: "-8589934592", rhs: "-7730941133", expecting: "-858993459") + self.subTest(lhs: "-8589934592", rhs: "6871947674", expecting: "-15461882266") + self.subTest(lhs: "-8589934592", rhs: "-6871947674", expecting: "-1717986918") + self.subTest(lhs: "-8589934592", rhs: "6012954215", expecting: "-14602888807") + self.subTest(lhs: "-8589934592", rhs: "-6012954215", expecting: "-2576980377") + self.subTest(lhs: "-8589934592", rhs: "5153960756", expecting: "-13743895348") + self.subTest(lhs: "-8589934592", rhs: "-5153960756", expecting: "-3435973836") + self.subTest(lhs: "-8589934592", rhs: "4294967297", expecting: "-12884901889") + self.subTest(lhs: "-8589934592", rhs: "-4294967297", expecting: "-4294967295") + self.subTest(lhs: "-8589934592", rhs: "3435973838", expecting: "-12025908430") + self.subTest(lhs: "-8589934592", rhs: "-3435973838", expecting: "-5153960754") + self.subTest(lhs: "-8589934592", rhs: "2576980379", expecting: "-11166914971") + self.subTest(lhs: "-8589934592", rhs: "-2576980379", expecting: "-6012954213") + self.subTest(lhs: "-8589934592", rhs: "1717986920", expecting: "-10307921512") + self.subTest(lhs: "-8589934592", rhs: "-1717986920", expecting: "-6871947672") + self.subTest(lhs: "-8589934592", rhs: "858993461", expecting: "-9448928053") + self.subTest(lhs: "-8589934592", rhs: "-858993461", expecting: "-7730941131") + self.subTest(lhs: "7730941133", rhs: "0", expecting: "7730941133") + self.subTest(lhs: "7730941133", rhs: "1", expecting: "7730941132") + self.subTest(lhs: "7730941133", rhs: "-1", expecting: "7730941134") + self.subTest(lhs: "7730941133", rhs: "8589934592", expecting: "-858993459") + self.subTest(lhs: "7730941133", rhs: "-8589934592", expecting: "16320875725") + self.subTest(lhs: "7730941133", rhs: "7730941133", expecting: "0") + self.subTest(lhs: "7730941133", rhs: "-7730941133", expecting: "15461882266") + self.subTest(lhs: "7730941133", rhs: "6871947674", expecting: "858993459") + self.subTest(lhs: "7730941133", rhs: "-6871947674", expecting: "14602888807") + self.subTest(lhs: "7730941133", rhs: "6012954215", expecting: "1717986918") + self.subTest(lhs: "7730941133", rhs: "-6012954215", expecting: "13743895348") + self.subTest(lhs: "7730941133", rhs: "5153960756", expecting: "2576980377") + self.subTest(lhs: "7730941133", rhs: "-5153960756", expecting: "12884901889") + self.subTest(lhs: "7730941133", rhs: "4294967297", expecting: "3435973836") + self.subTest(lhs: "7730941133", rhs: "-4294967297", expecting: "12025908430") + self.subTest(lhs: "7730941133", rhs: "3435973838", expecting: "4294967295") + self.subTest(lhs: "7730941133", rhs: "-3435973838", expecting: "11166914971") + self.subTest(lhs: "7730941133", rhs: "2576980379", expecting: "5153960754") + self.subTest(lhs: "7730941133", rhs: "-2576980379", expecting: "10307921512") + self.subTest(lhs: "7730941133", rhs: "1717986920", expecting: "6012954213") + self.subTest(lhs: "7730941133", rhs: "-1717986920", expecting: "9448928053") + self.subTest(lhs: "7730941133", rhs: "858993461", expecting: "6871947672") + self.subTest(lhs: "7730941133", rhs: "-858993461", expecting: "8589934594") + self.subTest(lhs: "-7730941133", rhs: "0", expecting: "-7730941133") + self.subTest(lhs: "-7730941133", rhs: "1", expecting: "-7730941134") + self.subTest(lhs: "-7730941133", rhs: "-1", expecting: "-7730941132") + self.subTest(lhs: "-7730941133", rhs: "8589934592", expecting: "-16320875725") + self.subTest(lhs: "-7730941133", rhs: "-8589934592", expecting: "858993459") + self.subTest(lhs: "-7730941133", rhs: "7730941133", expecting: "-15461882266") + self.subTest(lhs: "-7730941133", rhs: "-7730941133", expecting: "0") + self.subTest(lhs: "-7730941133", rhs: "6871947674", expecting: "-14602888807") + self.subTest(lhs: "-7730941133", rhs: "-6871947674", expecting: "-858993459") + self.subTest(lhs: "-7730941133", rhs: "6012954215", expecting: "-13743895348") + self.subTest(lhs: "-7730941133", rhs: "-6012954215", expecting: "-1717986918") + self.subTest(lhs: "-7730941133", rhs: "5153960756", expecting: "-12884901889") + self.subTest(lhs: "-7730941133", rhs: "-5153960756", expecting: "-2576980377") + self.subTest(lhs: "-7730941133", rhs: "4294967297", expecting: "-12025908430") + self.subTest(lhs: "-7730941133", rhs: "-4294967297", expecting: "-3435973836") + self.subTest(lhs: "-7730941133", rhs: "3435973838", expecting: "-11166914971") + self.subTest(lhs: "-7730941133", rhs: "-3435973838", expecting: "-4294967295") + self.subTest(lhs: "-7730941133", rhs: "2576980379", expecting: "-10307921512") + self.subTest(lhs: "-7730941133", rhs: "-2576980379", expecting: "-5153960754") + self.subTest(lhs: "-7730941133", rhs: "1717986920", expecting: "-9448928053") + self.subTest(lhs: "-7730941133", rhs: "-1717986920", expecting: "-6012954213") + self.subTest(lhs: "-7730941133", rhs: "858993461", expecting: "-8589934594") + self.subTest(lhs: "-7730941133", rhs: "-858993461", expecting: "-6871947672") + self.subTest(lhs: "6871947674", rhs: "0", expecting: "6871947674") + self.subTest(lhs: "6871947674", rhs: "1", expecting: "6871947673") + self.subTest(lhs: "6871947674", rhs: "-1", expecting: "6871947675") + self.subTest(lhs: "6871947674", rhs: "8589934592", expecting: "-1717986918") + self.subTest(lhs: "6871947674", rhs: "-8589934592", expecting: "15461882266") + self.subTest(lhs: "6871947674", rhs: "7730941133", expecting: "-858993459") + self.subTest(lhs: "6871947674", rhs: "-7730941133", expecting: "14602888807") + self.subTest(lhs: "6871947674", rhs: "6871947674", expecting: "0") + self.subTest(lhs: "6871947674", rhs: "-6871947674", expecting: "13743895348") + self.subTest(lhs: "6871947674", rhs: "6012954215", expecting: "858993459") + self.subTest(lhs: "6871947674", rhs: "-6012954215", expecting: "12884901889") + self.subTest(lhs: "6871947674", rhs: "5153960756", expecting: "1717986918") + self.subTest(lhs: "6871947674", rhs: "-5153960756", expecting: "12025908430") + self.subTest(lhs: "6871947674", rhs: "4294967297", expecting: "2576980377") + self.subTest(lhs: "6871947674", rhs: "-4294967297", expecting: "11166914971") + self.subTest(lhs: "6871947674", rhs: "3435973838", expecting: "3435973836") + self.subTest(lhs: "6871947674", rhs: "-3435973838", expecting: "10307921512") + self.subTest(lhs: "6871947674", rhs: "2576980379", expecting: "4294967295") + self.subTest(lhs: "6871947674", rhs: "-2576980379", expecting: "9448928053") + self.subTest(lhs: "6871947674", rhs: "1717986920", expecting: "5153960754") + self.subTest(lhs: "6871947674", rhs: "-1717986920", expecting: "8589934594") + self.subTest(lhs: "6871947674", rhs: "858993461", expecting: "6012954213") + self.subTest(lhs: "6871947674", rhs: "-858993461", expecting: "7730941135") + self.subTest(lhs: "-6871947674", rhs: "0", expecting: "-6871947674") + self.subTest(lhs: "-6871947674", rhs: "1", expecting: "-6871947675") + self.subTest(lhs: "-6871947674", rhs: "-1", expecting: "-6871947673") + self.subTest(lhs: "-6871947674", rhs: "8589934592", expecting: "-15461882266") + self.subTest(lhs: "-6871947674", rhs: "-8589934592", expecting: "1717986918") + self.subTest(lhs: "-6871947674", rhs: "7730941133", expecting: "-14602888807") + self.subTest(lhs: "-6871947674", rhs: "-7730941133", expecting: "858993459") + self.subTest(lhs: "-6871947674", rhs: "6871947674", expecting: "-13743895348") + self.subTest(lhs: "-6871947674", rhs: "-6871947674", expecting: "0") + self.subTest(lhs: "-6871947674", rhs: "6012954215", expecting: "-12884901889") + self.subTest(lhs: "-6871947674", rhs: "-6012954215", expecting: "-858993459") + self.subTest(lhs: "-6871947674", rhs: "5153960756", expecting: "-12025908430") + self.subTest(lhs: "-6871947674", rhs: "-5153960756", expecting: "-1717986918") + self.subTest(lhs: "-6871947674", rhs: "4294967297", expecting: "-11166914971") + self.subTest(lhs: "-6871947674", rhs: "-4294967297", expecting: "-2576980377") + self.subTest(lhs: "-6871947674", rhs: "3435973838", expecting: "-10307921512") + self.subTest(lhs: "-6871947674", rhs: "-3435973838", expecting: "-3435973836") + self.subTest(lhs: "-6871947674", rhs: "2576980379", expecting: "-9448928053") + self.subTest(lhs: "-6871947674", rhs: "-2576980379", expecting: "-4294967295") + self.subTest(lhs: "-6871947674", rhs: "1717986920", expecting: "-8589934594") + self.subTest(lhs: "-6871947674", rhs: "-1717986920", expecting: "-5153960754") + self.subTest(lhs: "-6871947674", rhs: "858993461", expecting: "-7730941135") + self.subTest(lhs: "-6871947674", rhs: "-858993461", expecting: "-6012954213") + self.subTest(lhs: "6012954215", rhs: "0", expecting: "6012954215") + self.subTest(lhs: "6012954215", rhs: "1", expecting: "6012954214") + self.subTest(lhs: "6012954215", rhs: "-1", expecting: "6012954216") + self.subTest(lhs: "6012954215", rhs: "8589934592", expecting: "-2576980377") + self.subTest(lhs: "6012954215", rhs: "-8589934592", expecting: "14602888807") + self.subTest(lhs: "6012954215", rhs: "7730941133", expecting: "-1717986918") + self.subTest(lhs: "6012954215", rhs: "-7730941133", expecting: "13743895348") + self.subTest(lhs: "6012954215", rhs: "6871947674", expecting: "-858993459") + self.subTest(lhs: "6012954215", rhs: "-6871947674", expecting: "12884901889") + self.subTest(lhs: "6012954215", rhs: "6012954215", expecting: "0") + self.subTest(lhs: "6012954215", rhs: "-6012954215", expecting: "12025908430") + self.subTest(lhs: "6012954215", rhs: "5153960756", expecting: "858993459") + self.subTest(lhs: "6012954215", rhs: "-5153960756", expecting: "11166914971") + self.subTest(lhs: "6012954215", rhs: "4294967297", expecting: "1717986918") + self.subTest(lhs: "6012954215", rhs: "-4294967297", expecting: "10307921512") + self.subTest(lhs: "6012954215", rhs: "3435973838", expecting: "2576980377") + self.subTest(lhs: "6012954215", rhs: "-3435973838", expecting: "9448928053") + self.subTest(lhs: "6012954215", rhs: "2576980379", expecting: "3435973836") + self.subTest(lhs: "6012954215", rhs: "-2576980379", expecting: "8589934594") + self.subTest(lhs: "6012954215", rhs: "1717986920", expecting: "4294967295") + self.subTest(lhs: "6012954215", rhs: "-1717986920", expecting: "7730941135") + self.subTest(lhs: "6012954215", rhs: "858993461", expecting: "5153960754") + self.subTest(lhs: "6012954215", rhs: "-858993461", expecting: "6871947676") + self.subTest(lhs: "-6012954215", rhs: "0", expecting: "-6012954215") + self.subTest(lhs: "-6012954215", rhs: "1", expecting: "-6012954216") + self.subTest(lhs: "-6012954215", rhs: "-1", expecting: "-6012954214") + self.subTest(lhs: "-6012954215", rhs: "8589934592", expecting: "-14602888807") + self.subTest(lhs: "-6012954215", rhs: "-8589934592", expecting: "2576980377") + self.subTest(lhs: "-6012954215", rhs: "7730941133", expecting: "-13743895348") + self.subTest(lhs: "-6012954215", rhs: "-7730941133", expecting: "1717986918") + self.subTest(lhs: "-6012954215", rhs: "6871947674", expecting: "-12884901889") + self.subTest(lhs: "-6012954215", rhs: "-6871947674", expecting: "858993459") + self.subTest(lhs: "-6012954215", rhs: "6012954215", expecting: "-12025908430") + self.subTest(lhs: "-6012954215", rhs: "-6012954215", expecting: "0") + self.subTest(lhs: "-6012954215", rhs: "5153960756", expecting: "-11166914971") + self.subTest(lhs: "-6012954215", rhs: "-5153960756", expecting: "-858993459") + self.subTest(lhs: "-6012954215", rhs: "4294967297", expecting: "-10307921512") + self.subTest(lhs: "-6012954215", rhs: "-4294967297", expecting: "-1717986918") + self.subTest(lhs: "-6012954215", rhs: "3435973838", expecting: "-9448928053") + self.subTest(lhs: "-6012954215", rhs: "-3435973838", expecting: "-2576980377") + self.subTest(lhs: "-6012954215", rhs: "2576980379", expecting: "-8589934594") + self.subTest(lhs: "-6012954215", rhs: "-2576980379", expecting: "-3435973836") + self.subTest(lhs: "-6012954215", rhs: "1717986920", expecting: "-7730941135") + self.subTest(lhs: "-6012954215", rhs: "-1717986920", expecting: "-4294967295") + self.subTest(lhs: "-6012954215", rhs: "858993461", expecting: "-6871947676") + self.subTest(lhs: "-6012954215", rhs: "-858993461", expecting: "-5153960754") + self.subTest(lhs: "5153960756", rhs: "0", expecting: "5153960756") + self.subTest(lhs: "5153960756", rhs: "1", expecting: "5153960755") + self.subTest(lhs: "5153960756", rhs: "-1", expecting: "5153960757") + self.subTest(lhs: "5153960756", rhs: "8589934592", expecting: "-3435973836") + self.subTest(lhs: "5153960756", rhs: "-8589934592", expecting: "13743895348") + self.subTest(lhs: "5153960756", rhs: "7730941133", expecting: "-2576980377") + self.subTest(lhs: "5153960756", rhs: "-7730941133", expecting: "12884901889") + self.subTest(lhs: "5153960756", rhs: "6871947674", expecting: "-1717986918") + self.subTest(lhs: "5153960756", rhs: "-6871947674", expecting: "12025908430") + self.subTest(lhs: "5153960756", rhs: "6012954215", expecting: "-858993459") + self.subTest(lhs: "5153960756", rhs: "-6012954215", expecting: "11166914971") + self.subTest(lhs: "5153960756", rhs: "5153960756", expecting: "0") + self.subTest(lhs: "5153960756", rhs: "-5153960756", expecting: "10307921512") + self.subTest(lhs: "5153960756", rhs: "4294967297", expecting: "858993459") + self.subTest(lhs: "5153960756", rhs: "-4294967297", expecting: "9448928053") + self.subTest(lhs: "5153960756", rhs: "3435973838", expecting: "1717986918") + self.subTest(lhs: "5153960756", rhs: "-3435973838", expecting: "8589934594") + self.subTest(lhs: "5153960756", rhs: "2576980379", expecting: "2576980377") + self.subTest(lhs: "5153960756", rhs: "-2576980379", expecting: "7730941135") + self.subTest(lhs: "5153960756", rhs: "1717986920", expecting: "3435973836") + self.subTest(lhs: "5153960756", rhs: "-1717986920", expecting: "6871947676") + self.subTest(lhs: "5153960756", rhs: "858993461", expecting: "4294967295") + self.subTest(lhs: "5153960756", rhs: "-858993461", expecting: "6012954217") + self.subTest(lhs: "-5153960756", rhs: "0", expecting: "-5153960756") + self.subTest(lhs: "-5153960756", rhs: "1", expecting: "-5153960757") + self.subTest(lhs: "-5153960756", rhs: "-1", expecting: "-5153960755") + self.subTest(lhs: "-5153960756", rhs: "8589934592", expecting: "-13743895348") + self.subTest(lhs: "-5153960756", rhs: "-8589934592", expecting: "3435973836") + self.subTest(lhs: "-5153960756", rhs: "7730941133", expecting: "-12884901889") + self.subTest(lhs: "-5153960756", rhs: "-7730941133", expecting: "2576980377") + self.subTest(lhs: "-5153960756", rhs: "6871947674", expecting: "-12025908430") + self.subTest(lhs: "-5153960756", rhs: "-6871947674", expecting: "1717986918") + self.subTest(lhs: "-5153960756", rhs: "6012954215", expecting: "-11166914971") + self.subTest(lhs: "-5153960756", rhs: "-6012954215", expecting: "858993459") + self.subTest(lhs: "-5153960756", rhs: "5153960756", expecting: "-10307921512") + self.subTest(lhs: "-5153960756", rhs: "-5153960756", expecting: "0") + self.subTest(lhs: "-5153960756", rhs: "4294967297", expecting: "-9448928053") + self.subTest(lhs: "-5153960756", rhs: "-4294967297", expecting: "-858993459") + self.subTest(lhs: "-5153960756", rhs: "3435973838", expecting: "-8589934594") + self.subTest(lhs: "-5153960756", rhs: "-3435973838", expecting: "-1717986918") + self.subTest(lhs: "-5153960756", rhs: "2576980379", expecting: "-7730941135") + self.subTest(lhs: "-5153960756", rhs: "-2576980379", expecting: "-2576980377") + self.subTest(lhs: "-5153960756", rhs: "1717986920", expecting: "-6871947676") + self.subTest(lhs: "-5153960756", rhs: "-1717986920", expecting: "-3435973836") + self.subTest(lhs: "-5153960756", rhs: "858993461", expecting: "-6012954217") + self.subTest(lhs: "-5153960756", rhs: "-858993461", expecting: "-4294967295") + self.subTest(lhs: "4294967297", rhs: "0", expecting: "4294967297") + self.subTest(lhs: "4294967297", rhs: "1", expecting: "4294967296") + self.subTest(lhs: "4294967297", rhs: "-1", expecting: "4294967298") + self.subTest(lhs: "4294967297", rhs: "8589934592", expecting: "-4294967295") + self.subTest(lhs: "4294967297", rhs: "-8589934592", expecting: "12884901889") + self.subTest(lhs: "4294967297", rhs: "7730941133", expecting: "-3435973836") + self.subTest(lhs: "4294967297", rhs: "-7730941133", expecting: "12025908430") + self.subTest(lhs: "4294967297", rhs: "6871947674", expecting: "-2576980377") + self.subTest(lhs: "4294967297", rhs: "-6871947674", expecting: "11166914971") + self.subTest(lhs: "4294967297", rhs: "6012954215", expecting: "-1717986918") + self.subTest(lhs: "4294967297", rhs: "-6012954215", expecting: "10307921512") + self.subTest(lhs: "4294967297", rhs: "5153960756", expecting: "-858993459") + self.subTest(lhs: "4294967297", rhs: "-5153960756", expecting: "9448928053") + self.subTest(lhs: "4294967297", rhs: "4294967297", expecting: "0") + self.subTest(lhs: "4294967297", rhs: "-4294967297", expecting: "8589934594") + self.subTest(lhs: "4294967297", rhs: "3435973838", expecting: "858993459") + self.subTest(lhs: "4294967297", rhs: "-3435973838", expecting: "7730941135") + self.subTest(lhs: "4294967297", rhs: "2576980379", expecting: "1717986918") + self.subTest(lhs: "4294967297", rhs: "-2576980379", expecting: "6871947676") + self.subTest(lhs: "4294967297", rhs: "1717986920", expecting: "2576980377") + self.subTest(lhs: "4294967297", rhs: "-1717986920", expecting: "6012954217") + self.subTest(lhs: "4294967297", rhs: "858993461", expecting: "3435973836") + self.subTest(lhs: "4294967297", rhs: "-858993461", expecting: "5153960758") + self.subTest(lhs: "-4294967297", rhs: "0", expecting: "-4294967297") + self.subTest(lhs: "-4294967297", rhs: "1", expecting: "-4294967298") + self.subTest(lhs: "-4294967297", rhs: "-1", expecting: "-4294967296") + self.subTest(lhs: "-4294967297", rhs: "8589934592", expecting: "-12884901889") + self.subTest(lhs: "-4294967297", rhs: "-8589934592", expecting: "4294967295") + self.subTest(lhs: "-4294967297", rhs: "7730941133", expecting: "-12025908430") + self.subTest(lhs: "-4294967297", rhs: "-7730941133", expecting: "3435973836") + self.subTest(lhs: "-4294967297", rhs: "6871947674", expecting: "-11166914971") + self.subTest(lhs: "-4294967297", rhs: "-6871947674", expecting: "2576980377") + self.subTest(lhs: "-4294967297", rhs: "6012954215", expecting: "-10307921512") + self.subTest(lhs: "-4294967297", rhs: "-6012954215", expecting: "1717986918") + self.subTest(lhs: "-4294967297", rhs: "5153960756", expecting: "-9448928053") + self.subTest(lhs: "-4294967297", rhs: "-5153960756", expecting: "858993459") + self.subTest(lhs: "-4294967297", rhs: "4294967297", expecting: "-8589934594") + self.subTest(lhs: "-4294967297", rhs: "-4294967297", expecting: "0") + self.subTest(lhs: "-4294967297", rhs: "3435973838", expecting: "-7730941135") + self.subTest(lhs: "-4294967297", rhs: "-3435973838", expecting: "-858993459") + self.subTest(lhs: "-4294967297", rhs: "2576980379", expecting: "-6871947676") + self.subTest(lhs: "-4294967297", rhs: "-2576980379", expecting: "-1717986918") + self.subTest(lhs: "-4294967297", rhs: "1717986920", expecting: "-6012954217") + self.subTest(lhs: "-4294967297", rhs: "-1717986920", expecting: "-2576980377") + self.subTest(lhs: "-4294967297", rhs: "858993461", expecting: "-5153960758") + self.subTest(lhs: "-4294967297", rhs: "-858993461", expecting: "-3435973836") + self.subTest(lhs: "3435973838", rhs: "0", expecting: "3435973838") + self.subTest(lhs: "3435973838", rhs: "1", expecting: "3435973837") + self.subTest(lhs: "3435973838", rhs: "-1", expecting: "3435973839") + self.subTest(lhs: "3435973838", rhs: "8589934592", expecting: "-5153960754") + self.subTest(lhs: "3435973838", rhs: "-8589934592", expecting: "12025908430") + self.subTest(lhs: "3435973838", rhs: "7730941133", expecting: "-4294967295") + self.subTest(lhs: "3435973838", rhs: "-7730941133", expecting: "11166914971") + self.subTest(lhs: "3435973838", rhs: "6871947674", expecting: "-3435973836") + self.subTest(lhs: "3435973838", rhs: "-6871947674", expecting: "10307921512") + self.subTest(lhs: "3435973838", rhs: "6012954215", expecting: "-2576980377") + self.subTest(lhs: "3435973838", rhs: "-6012954215", expecting: "9448928053") + self.subTest(lhs: "3435973838", rhs: "5153960756", expecting: "-1717986918") + self.subTest(lhs: "3435973838", rhs: "-5153960756", expecting: "8589934594") + self.subTest(lhs: "3435973838", rhs: "4294967297", expecting: "-858993459") + self.subTest(lhs: "3435973838", rhs: "-4294967297", expecting: "7730941135") + self.subTest(lhs: "3435973838", rhs: "3435973838", expecting: "0") + self.subTest(lhs: "3435973838", rhs: "-3435973838", expecting: "6871947676") + self.subTest(lhs: "3435973838", rhs: "2576980379", expecting: "858993459") + self.subTest(lhs: "3435973838", rhs: "-2576980379", expecting: "6012954217") + self.subTest(lhs: "3435973838", rhs: "1717986920", expecting: "1717986918") + self.subTest(lhs: "3435973838", rhs: "-1717986920", expecting: "5153960758") + self.subTest(lhs: "3435973838", rhs: "858993461", expecting: "2576980377") + self.subTest(lhs: "3435973838", rhs: "-858993461", expecting: "4294967299") + self.subTest(lhs: "-3435973838", rhs: "0", expecting: "-3435973838") + self.subTest(lhs: "-3435973838", rhs: "1", expecting: "-3435973839") + self.subTest(lhs: "-3435973838", rhs: "-1", expecting: "-3435973837") + self.subTest(lhs: "-3435973838", rhs: "8589934592", expecting: "-12025908430") + self.subTest(lhs: "-3435973838", rhs: "-8589934592", expecting: "5153960754") + self.subTest(lhs: "-3435973838", rhs: "7730941133", expecting: "-11166914971") + self.subTest(lhs: "-3435973838", rhs: "-7730941133", expecting: "4294967295") + self.subTest(lhs: "-3435973838", rhs: "6871947674", expecting: "-10307921512") + self.subTest(lhs: "-3435973838", rhs: "-6871947674", expecting: "3435973836") + self.subTest(lhs: "-3435973838", rhs: "6012954215", expecting: "-9448928053") + self.subTest(lhs: "-3435973838", rhs: "-6012954215", expecting: "2576980377") + self.subTest(lhs: "-3435973838", rhs: "5153960756", expecting: "-8589934594") + self.subTest(lhs: "-3435973838", rhs: "-5153960756", expecting: "1717986918") + self.subTest(lhs: "-3435973838", rhs: "4294967297", expecting: "-7730941135") + self.subTest(lhs: "-3435973838", rhs: "-4294967297", expecting: "858993459") + self.subTest(lhs: "-3435973838", rhs: "3435973838", expecting: "-6871947676") + self.subTest(lhs: "-3435973838", rhs: "-3435973838", expecting: "0") + self.subTest(lhs: "-3435973838", rhs: "2576980379", expecting: "-6012954217") + self.subTest(lhs: "-3435973838", rhs: "-2576980379", expecting: "-858993459") + self.subTest(lhs: "-3435973838", rhs: "1717986920", expecting: "-5153960758") + self.subTest(lhs: "-3435973838", rhs: "-1717986920", expecting: "-1717986918") + self.subTest(lhs: "-3435973838", rhs: "858993461", expecting: "-4294967299") + self.subTest(lhs: "-3435973838", rhs: "-858993461", expecting: "-2576980377") + self.subTest(lhs: "2576980379", rhs: "0", expecting: "2576980379") + self.subTest(lhs: "2576980379", rhs: "1", expecting: "2576980378") + self.subTest(lhs: "2576980379", rhs: "-1", expecting: "2576980380") + self.subTest(lhs: "2576980379", rhs: "8589934592", expecting: "-6012954213") + self.subTest(lhs: "2576980379", rhs: "-8589934592", expecting: "11166914971") + self.subTest(lhs: "2576980379", rhs: "7730941133", expecting: "-5153960754") + self.subTest(lhs: "2576980379", rhs: "-7730941133", expecting: "10307921512") + self.subTest(lhs: "2576980379", rhs: "6871947674", expecting: "-4294967295") + self.subTest(lhs: "2576980379", rhs: "-6871947674", expecting: "9448928053") + self.subTest(lhs: "2576980379", rhs: "6012954215", expecting: "-3435973836") + self.subTest(lhs: "2576980379", rhs: "-6012954215", expecting: "8589934594") + self.subTest(lhs: "2576980379", rhs: "5153960756", expecting: "-2576980377") + self.subTest(lhs: "2576980379", rhs: "-5153960756", expecting: "7730941135") + self.subTest(lhs: "2576980379", rhs: "4294967297", expecting: "-1717986918") + self.subTest(lhs: "2576980379", rhs: "-4294967297", expecting: "6871947676") + self.subTest(lhs: "2576980379", rhs: "3435973838", expecting: "-858993459") + self.subTest(lhs: "2576980379", rhs: "-3435973838", expecting: "6012954217") + self.subTest(lhs: "2576980379", rhs: "2576980379", expecting: "0") + self.subTest(lhs: "2576980379", rhs: "-2576980379", expecting: "5153960758") + self.subTest(lhs: "2576980379", rhs: "1717986920", expecting: "858993459") + self.subTest(lhs: "2576980379", rhs: "-1717986920", expecting: "4294967299") + self.subTest(lhs: "2576980379", rhs: "858993461", expecting: "1717986918") + self.subTest(lhs: "2576980379", rhs: "-858993461", expecting: "3435973840") + self.subTest(lhs: "-2576980379", rhs: "0", expecting: "-2576980379") + self.subTest(lhs: "-2576980379", rhs: "1", expecting: "-2576980380") + self.subTest(lhs: "-2576980379", rhs: "-1", expecting: "-2576980378") + self.subTest(lhs: "-2576980379", rhs: "8589934592", expecting: "-11166914971") + self.subTest(lhs: "-2576980379", rhs: "-8589934592", expecting: "6012954213") + self.subTest(lhs: "-2576980379", rhs: "7730941133", expecting: "-10307921512") + self.subTest(lhs: "-2576980379", rhs: "-7730941133", expecting: "5153960754") + self.subTest(lhs: "-2576980379", rhs: "6871947674", expecting: "-9448928053") + self.subTest(lhs: "-2576980379", rhs: "-6871947674", expecting: "4294967295") + self.subTest(lhs: "-2576980379", rhs: "6012954215", expecting: "-8589934594") + self.subTest(lhs: "-2576980379", rhs: "-6012954215", expecting: "3435973836") + self.subTest(lhs: "-2576980379", rhs: "5153960756", expecting: "-7730941135") + self.subTest(lhs: "-2576980379", rhs: "-5153960756", expecting: "2576980377") + self.subTest(lhs: "-2576980379", rhs: "4294967297", expecting: "-6871947676") + self.subTest(lhs: "-2576980379", rhs: "-4294967297", expecting: "1717986918") + self.subTest(lhs: "-2576980379", rhs: "3435973838", expecting: "-6012954217") + self.subTest(lhs: "-2576980379", rhs: "-3435973838", expecting: "858993459") + self.subTest(lhs: "-2576980379", rhs: "2576980379", expecting: "-5153960758") + self.subTest(lhs: "-2576980379", rhs: "-2576980379", expecting: "0") + self.subTest(lhs: "-2576980379", rhs: "1717986920", expecting: "-4294967299") + self.subTest(lhs: "-2576980379", rhs: "-1717986920", expecting: "-858993459") + self.subTest(lhs: "-2576980379", rhs: "858993461", expecting: "-3435973840") + self.subTest(lhs: "-2576980379", rhs: "-858993461", expecting: "-1717986918") + self.subTest(lhs: "1717986920", rhs: "0", expecting: "1717986920") + self.subTest(lhs: "1717986920", rhs: "1", expecting: "1717986919") + self.subTest(lhs: "1717986920", rhs: "-1", expecting: "1717986921") + self.subTest(lhs: "1717986920", rhs: "8589934592", expecting: "-6871947672") + self.subTest(lhs: "1717986920", rhs: "-8589934592", expecting: "10307921512") + self.subTest(lhs: "1717986920", rhs: "7730941133", expecting: "-6012954213") + self.subTest(lhs: "1717986920", rhs: "-7730941133", expecting: "9448928053") + self.subTest(lhs: "1717986920", rhs: "6871947674", expecting: "-5153960754") + self.subTest(lhs: "1717986920", rhs: "-6871947674", expecting: "8589934594") + self.subTest(lhs: "1717986920", rhs: "6012954215", expecting: "-4294967295") + self.subTest(lhs: "1717986920", rhs: "-6012954215", expecting: "7730941135") + self.subTest(lhs: "1717986920", rhs: "5153960756", expecting: "-3435973836") + self.subTest(lhs: "1717986920", rhs: "-5153960756", expecting: "6871947676") + self.subTest(lhs: "1717986920", rhs: "4294967297", expecting: "-2576980377") + self.subTest(lhs: "1717986920", rhs: "-4294967297", expecting: "6012954217") + self.subTest(lhs: "1717986920", rhs: "3435973838", expecting: "-1717986918") + self.subTest(lhs: "1717986920", rhs: "-3435973838", expecting: "5153960758") + self.subTest(lhs: "1717986920", rhs: "2576980379", expecting: "-858993459") + self.subTest(lhs: "1717986920", rhs: "-2576980379", expecting: "4294967299") + self.subTest(lhs: "1717986920", rhs: "1717986920", expecting: "0") + self.subTest(lhs: "1717986920", rhs: "-1717986920", expecting: "3435973840") + self.subTest(lhs: "1717986920", rhs: "858993461", expecting: "858993459") + self.subTest(lhs: "1717986920", rhs: "-858993461", expecting: "2576980381") + 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: "8589934592", expecting: "-10307921512") + self.subTest(lhs: "-1717986920", rhs: "-8589934592", expecting: "6871947672") + self.subTest(lhs: "-1717986920", rhs: "7730941133", expecting: "-9448928053") + self.subTest(lhs: "-1717986920", rhs: "-7730941133", expecting: "6012954213") + self.subTest(lhs: "-1717986920", rhs: "6871947674", expecting: "-8589934594") + self.subTest(lhs: "-1717986920", rhs: "-6871947674", expecting: "5153960754") + self.subTest(lhs: "-1717986920", rhs: "6012954215", expecting: "-7730941135") + self.subTest(lhs: "-1717986920", rhs: "-6012954215", expecting: "4294967295") + self.subTest(lhs: "-1717986920", rhs: "5153960756", expecting: "-6871947676") + self.subTest(lhs: "-1717986920", rhs: "-5153960756", expecting: "3435973836") + self.subTest(lhs: "-1717986920", rhs: "4294967297", expecting: "-6012954217") + self.subTest(lhs: "-1717986920", rhs: "-4294967297", expecting: "2576980377") + self.subTest(lhs: "-1717986920", rhs: "3435973838", expecting: "-5153960758") + self.subTest(lhs: "-1717986920", rhs: "-3435973838", expecting: "1717986918") + self.subTest(lhs: "-1717986920", rhs: "2576980379", expecting: "-4294967299") + self.subTest(lhs: "-1717986920", rhs: "-2576980379", expecting: "858993459") + self.subTest(lhs: "-1717986920", rhs: "1717986920", expecting: "-3435973840") + self.subTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "0") + self.subTest(lhs: "-1717986920", rhs: "858993461", expecting: "-2576980381") + self.subTest(lhs: "-1717986920", rhs: "-858993461", expecting: "-858993459") + self.subTest(lhs: "858993461", rhs: "0", expecting: "858993461") + self.subTest(lhs: "858993461", rhs: "1", expecting: "858993460") + self.subTest(lhs: "858993461", rhs: "-1", expecting: "858993462") + self.subTest(lhs: "858993461", rhs: "8589934592", expecting: "-7730941131") + self.subTest(lhs: "858993461", rhs: "-8589934592", expecting: "9448928053") + self.subTest(lhs: "858993461", rhs: "7730941133", expecting: "-6871947672") + self.subTest(lhs: "858993461", rhs: "-7730941133", expecting: "8589934594") + self.subTest(lhs: "858993461", rhs: "6871947674", expecting: "-6012954213") + self.subTest(lhs: "858993461", rhs: "-6871947674", expecting: "7730941135") + self.subTest(lhs: "858993461", rhs: "6012954215", expecting: "-5153960754") + self.subTest(lhs: "858993461", rhs: "-6012954215", expecting: "6871947676") + self.subTest(lhs: "858993461", rhs: "5153960756", expecting: "-4294967295") + self.subTest(lhs: "858993461", rhs: "-5153960756", expecting: "6012954217") + self.subTest(lhs: "858993461", rhs: "4294967297", expecting: "-3435973836") + self.subTest(lhs: "858993461", rhs: "-4294967297", expecting: "5153960758") + self.subTest(lhs: "858993461", rhs: "3435973838", expecting: "-2576980377") + self.subTest(lhs: "858993461", rhs: "-3435973838", expecting: "4294967299") + self.subTest(lhs: "858993461", rhs: "2576980379", expecting: "-1717986918") + self.subTest(lhs: "858993461", rhs: "-2576980379", expecting: "3435973840") + self.subTest(lhs: "858993461", rhs: "1717986920", expecting: "-858993459") + self.subTest(lhs: "858993461", rhs: "-1717986920", expecting: "2576980381") + self.subTest(lhs: "858993461", rhs: "858993461", expecting: "0") + self.subTest(lhs: "858993461", rhs: "-858993461", expecting: "1717986922") + self.subTest(lhs: "-858993461", rhs: "0", expecting: "-858993461") + self.subTest(lhs: "-858993461", rhs: "1", expecting: "-858993462") + self.subTest(lhs: "-858993461", rhs: "-1", expecting: "-858993460") + self.subTest(lhs: "-858993461", rhs: "8589934592", expecting: "-9448928053") + self.subTest(lhs: "-858993461", rhs: "-8589934592", expecting: "7730941131") + self.subTest(lhs: "-858993461", rhs: "7730941133", expecting: "-8589934594") + self.subTest(lhs: "-858993461", rhs: "-7730941133", expecting: "6871947672") + self.subTest(lhs: "-858993461", rhs: "6871947674", expecting: "-7730941135") + self.subTest(lhs: "-858993461", rhs: "-6871947674", expecting: "6012954213") + self.subTest(lhs: "-858993461", rhs: "6012954215", expecting: "-6871947676") + self.subTest(lhs: "-858993461", rhs: "-6012954215", expecting: "5153960754") + self.subTest(lhs: "-858993461", rhs: "5153960756", expecting: "-6012954217") + self.subTest(lhs: "-858993461", rhs: "-5153960756", expecting: "4294967295") + self.subTest(lhs: "-858993461", rhs: "4294967297", expecting: "-5153960758") + self.subTest(lhs: "-858993461", rhs: "-4294967297", expecting: "3435973836") + self.subTest(lhs: "-858993461", rhs: "3435973838", expecting: "-4294967299") + self.subTest(lhs: "-858993461", rhs: "-3435973838", expecting: "2576980377") + self.subTest(lhs: "-858993461", rhs: "2576980379", expecting: "-3435973840") + self.subTest(lhs: "-858993461", rhs: "-2576980379", expecting: "1717986918") + self.subTest(lhs: "-858993461", rhs: "1717986920", expecting: "-2576980381") + self.subTest(lhs: "-858993461", rhs: "-1717986920", expecting: "858993459") + self.subTest(lhs: "-858993461", rhs: "858993461", expecting: "-1717986922") + self.subTest(lhs: "-858993461", rhs: "-858993461", expecting: "0") + } + + func test_sub_int_big() { + 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: "8589934592", rhs: "0", expecting: "8589934592") + self.subTest(lhs: "8589934592", rhs: "1", expecting: "8589934591") + self.subTest(lhs: "8589934592", rhs: "-1", expecting: "8589934593") + self.subTest(lhs: "8589934592", rhs: "18446744073709551615", expecting: "-18446744065119617023") + self.subTest(lhs: "8589934592", rhs: "-18446744073709551615", expecting: "18446744082299486207") + self.subTest(lhs: "8589934592", rhs: "18446744073709551617", expecting: "-18446744065119617025") + self.subTest(lhs: "8589934592", rhs: "-18446744073709551617", expecting: "18446744082299486209") + self.subTest(lhs: "8589934592", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351496887828482") + self.subTest(lhs: "8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351514067697666") + self.subTest(lhs: "8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915245271449605") + self.subTest(lhs: "8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915262451318789") + self.subTest(lhs: "8589934592", rhs: "18446744073709551623", expecting: "-18446744065119617031") + self.subTest(lhs: "8589934592", rhs: "-18446744073709551623", expecting: "18446744082299486215") + self.subTest(lhs: "8589934592", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815939145138178") + self.subTest(lhs: "8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815956325007362") + self.subTest(lhs: "8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095393623408651") + self.subTest(lhs: "8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095410803277835") + self.subTest(lhs: "8589934592", rhs: "18446744073709551629", expecting: "-18446744065119617037") + self.subTest(lhs: "8589934592", rhs: "-18446744073709551629", expecting: "18446744082299486221") + self.subTest(lhs: "8589934592", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280381402447874") + self.subTest(lhs: "8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280398582317058") + self.subTest(lhs: "8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275541975367697") + self.subTest(lhs: "8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275559155236881") + self.subTest(lhs: "8589934592", rhs: "18446744073709551635", expecting: "-18446744065119617043") + self.subTest(lhs: "8589934592", rhs: "-18446744073709551635", expecting: "18446744082299486227") + self.subTest(lhs: "-8589934592", rhs: "0", expecting: "-8589934592") + self.subTest(lhs: "-8589934592", rhs: "1", expecting: "-8589934593") + self.subTest(lhs: "-8589934592", rhs: "-1", expecting: "-8589934591") + self.subTest(lhs: "-8589934592", rhs: "18446744073709551615", expecting: "-18446744082299486207") + self.subTest(lhs: "-8589934592", rhs: "-18446744073709551615", expecting: "18446744065119617023") + self.subTest(lhs: "-8589934592", rhs: "18446744073709551617", expecting: "-18446744082299486209") + self.subTest(lhs: "-8589934592", rhs: "-18446744073709551617", expecting: "18446744065119617025") + self.subTest(lhs: "-8589934592", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351514067697666") + self.subTest(lhs: "-8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351496887828482") + self.subTest(lhs: "-8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915262451318789") + self.subTest(lhs: "-8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915245271449605") + self.subTest(lhs: "-8589934592", rhs: "18446744073709551623", expecting: "-18446744082299486215") + self.subTest(lhs: "-8589934592", rhs: "-18446744073709551623", expecting: "18446744065119617031") + self.subTest(lhs: "-8589934592", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815956325007362") + self.subTest(lhs: "-8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815939145138178") + self.subTest(lhs: "-8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095410803277835") + self.subTest(lhs: "-8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095393623408651") + self.subTest(lhs: "-8589934592", rhs: "18446744073709551629", expecting: "-18446744082299486221") + self.subTest(lhs: "-8589934592", rhs: "-18446744073709551629", expecting: "18446744065119617037") + self.subTest(lhs: "-8589934592", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280398582317058") + self.subTest(lhs: "-8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280381402447874") + self.subTest(lhs: "-8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275559155236881") + self.subTest(lhs: "-8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275541975367697") + self.subTest(lhs: "-8589934592", rhs: "18446744073709551635", expecting: "-18446744082299486227") + self.subTest(lhs: "-8589934592", rhs: "-18446744073709551635", expecting: "18446744065119617043") + self.subTest(lhs: "7730941133", rhs: "0", expecting: "7730941133") + self.subTest(lhs: "7730941133", rhs: "1", expecting: "7730941132") + self.subTest(lhs: "7730941133", rhs: "-1", expecting: "7730941134") + self.subTest(lhs: "7730941133", rhs: "18446744073709551615", expecting: "-18446744065978610482") + self.subTest(lhs: "7730941133", rhs: "-18446744073709551615", expecting: "18446744081440492748") + self.subTest(lhs: "7730941133", rhs: "18446744073709551617", expecting: "-18446744065978610484") + self.subTest(lhs: "7730941133", rhs: "-18446744073709551617", expecting: "18446744081440492750") + self.subTest(lhs: "7730941133", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351497746821941") + self.subTest(lhs: "7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351513208704207") + self.subTest(lhs: "7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915246130443064") + self.subTest(lhs: "7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915261592325330") + self.subTest(lhs: "7730941133", rhs: "18446744073709551623", expecting: "-18446744065978610490") + self.subTest(lhs: "7730941133", rhs: "-18446744073709551623", expecting: "18446744081440492756") + self.subTest(lhs: "7730941133", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815940004131637") + self.subTest(lhs: "7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815955466013903") + self.subTest(lhs: "7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095394482402110") + self.subTest(lhs: "7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095409944284376") + self.subTest(lhs: "7730941133", rhs: "18446744073709551629", expecting: "-18446744065978610496") + self.subTest(lhs: "7730941133", rhs: "-18446744073709551629", expecting: "18446744081440492762") + self.subTest(lhs: "7730941133", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280382261441333") + self.subTest(lhs: "7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280397723323599") + self.subTest(lhs: "7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275542834361156") + self.subTest(lhs: "7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275558296243422") + self.subTest(lhs: "7730941133", rhs: "18446744073709551635", expecting: "-18446744065978610502") + self.subTest(lhs: "7730941133", rhs: "-18446744073709551635", expecting: "18446744081440492768") + self.subTest(lhs: "-7730941133", rhs: "0", expecting: "-7730941133") + self.subTest(lhs: "-7730941133", rhs: "1", expecting: "-7730941134") + self.subTest(lhs: "-7730941133", rhs: "-1", expecting: "-7730941132") + self.subTest(lhs: "-7730941133", rhs: "18446744073709551615", expecting: "-18446744081440492748") + self.subTest(lhs: "-7730941133", rhs: "-18446744073709551615", expecting: "18446744065978610482") + self.subTest(lhs: "-7730941133", rhs: "18446744073709551617", expecting: "-18446744081440492750") + self.subTest(lhs: "-7730941133", rhs: "-18446744073709551617", expecting: "18446744065978610484") + self.subTest(lhs: "-7730941133", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351513208704207") + self.subTest(lhs: "-7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351497746821941") + self.subTest(lhs: "-7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915261592325330") + self.subTest(lhs: "-7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915246130443064") + self.subTest(lhs: "-7730941133", rhs: "18446744073709551623", expecting: "-18446744081440492756") + self.subTest(lhs: "-7730941133", rhs: "-18446744073709551623", expecting: "18446744065978610490") + self.subTest(lhs: "-7730941133", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815955466013903") + self.subTest(lhs: "-7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815940004131637") + self.subTest(lhs: "-7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095409944284376") + self.subTest(lhs: "-7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095394482402110") + self.subTest(lhs: "-7730941133", rhs: "18446744073709551629", expecting: "-18446744081440492762") + self.subTest(lhs: "-7730941133", rhs: "-18446744073709551629", expecting: "18446744065978610496") + self.subTest(lhs: "-7730941133", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280397723323599") + self.subTest(lhs: "-7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280382261441333") + self.subTest(lhs: "-7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275558296243422") + self.subTest(lhs: "-7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275542834361156") + self.subTest(lhs: "-7730941133", rhs: "18446744073709551635", expecting: "-18446744081440492768") + self.subTest(lhs: "-7730941133", rhs: "-18446744073709551635", expecting: "18446744065978610502") + self.subTest(lhs: "6871947674", rhs: "0", expecting: "6871947674") + self.subTest(lhs: "6871947674", rhs: "1", expecting: "6871947673") + self.subTest(lhs: "6871947674", rhs: "-1", expecting: "6871947675") + self.subTest(lhs: "6871947674", rhs: "18446744073709551615", expecting: "-18446744066837603941") + self.subTest(lhs: "6871947674", rhs: "-18446744073709551615", expecting: "18446744080581499289") + self.subTest(lhs: "6871947674", rhs: "18446744073709551617", expecting: "-18446744066837603943") + self.subTest(lhs: "6871947674", rhs: "-18446744073709551617", expecting: "18446744080581499291") + self.subTest(lhs: "6871947674", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351498605815400") + self.subTest(lhs: "6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351512349710748") + self.subTest(lhs: "6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915246989436523") + self.subTest(lhs: "6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915260733331871") + self.subTest(lhs: "6871947674", rhs: "18446744073709551623", expecting: "-18446744066837603949") + self.subTest(lhs: "6871947674", rhs: "-18446744073709551623", expecting: "18446744080581499297") + self.subTest(lhs: "6871947674", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815940863125096") + self.subTest(lhs: "6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815954607020444") + self.subTest(lhs: "6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095395341395569") + self.subTest(lhs: "6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095409085290917") + self.subTest(lhs: "6871947674", rhs: "18446744073709551629", expecting: "-18446744066837603955") + self.subTest(lhs: "6871947674", rhs: "-18446744073709551629", expecting: "18446744080581499303") + self.subTest(lhs: "6871947674", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280383120434792") + self.subTest(lhs: "6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280396864330140") + self.subTest(lhs: "6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275543693354615") + self.subTest(lhs: "6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275557437249963") + self.subTest(lhs: "6871947674", rhs: "18446744073709551635", expecting: "-18446744066837603961") + self.subTest(lhs: "6871947674", rhs: "-18446744073709551635", expecting: "18446744080581499309") + self.subTest(lhs: "-6871947674", rhs: "0", expecting: "-6871947674") + self.subTest(lhs: "-6871947674", rhs: "1", expecting: "-6871947675") + self.subTest(lhs: "-6871947674", rhs: "-1", expecting: "-6871947673") + self.subTest(lhs: "-6871947674", rhs: "18446744073709551615", expecting: "-18446744080581499289") + self.subTest(lhs: "-6871947674", rhs: "-18446744073709551615", expecting: "18446744066837603941") + self.subTest(lhs: "-6871947674", rhs: "18446744073709551617", expecting: "-18446744080581499291") + self.subTest(lhs: "-6871947674", rhs: "-18446744073709551617", expecting: "18446744066837603943") + self.subTest(lhs: "-6871947674", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351512349710748") + self.subTest(lhs: "-6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351498605815400") + self.subTest(lhs: "-6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915260733331871") + self.subTest(lhs: "-6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915246989436523") + self.subTest(lhs: "-6871947674", rhs: "18446744073709551623", expecting: "-18446744080581499297") + self.subTest(lhs: "-6871947674", rhs: "-18446744073709551623", expecting: "18446744066837603949") + self.subTest(lhs: "-6871947674", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815954607020444") + self.subTest(lhs: "-6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815940863125096") + self.subTest(lhs: "-6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095409085290917") + self.subTest(lhs: "-6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095395341395569") + self.subTest(lhs: "-6871947674", rhs: "18446744073709551629", expecting: "-18446744080581499303") + self.subTest(lhs: "-6871947674", rhs: "-18446744073709551629", expecting: "18446744066837603955") + self.subTest(lhs: "-6871947674", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280396864330140") + self.subTest(lhs: "-6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280383120434792") + self.subTest(lhs: "-6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275557437249963") + self.subTest(lhs: "-6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275543693354615") + self.subTest(lhs: "-6871947674", rhs: "18446744073709551635", expecting: "-18446744080581499309") + self.subTest(lhs: "-6871947674", rhs: "-18446744073709551635", expecting: "18446744066837603961") + self.subTest(lhs: "6012954215", rhs: "0", expecting: "6012954215") + self.subTest(lhs: "6012954215", rhs: "1", expecting: "6012954214") + self.subTest(lhs: "6012954215", rhs: "-1", expecting: "6012954216") + self.subTest(lhs: "6012954215", rhs: "18446744073709551615", expecting: "-18446744067696597400") + self.subTest(lhs: "6012954215", rhs: "-18446744073709551615", expecting: "18446744079722505830") + self.subTest(lhs: "6012954215", rhs: "18446744073709551617", expecting: "-18446744067696597402") + self.subTest(lhs: "6012954215", rhs: "-18446744073709551617", expecting: "18446744079722505832") + self.subTest(lhs: "6012954215", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351499464808859") + self.subTest(lhs: "6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351511490717289") + self.subTest(lhs: "6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915247848429982") + self.subTest(lhs: "6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915259874338412") + self.subTest(lhs: "6012954215", rhs: "18446744073709551623", expecting: "-18446744067696597408") + self.subTest(lhs: "6012954215", rhs: "-18446744073709551623", expecting: "18446744079722505838") + self.subTest(lhs: "6012954215", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815941722118555") + self.subTest(lhs: "6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815953748026985") + self.subTest(lhs: "6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095396200389028") + self.subTest(lhs: "6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095408226297458") + self.subTest(lhs: "6012954215", rhs: "18446744073709551629", expecting: "-18446744067696597414") + self.subTest(lhs: "6012954215", rhs: "-18446744073709551629", expecting: "18446744079722505844") + self.subTest(lhs: "6012954215", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280383979428251") + self.subTest(lhs: "6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280396005336681") + self.subTest(lhs: "6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275544552348074") + self.subTest(lhs: "6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275556578256504") + self.subTest(lhs: "6012954215", rhs: "18446744073709551635", expecting: "-18446744067696597420") + self.subTest(lhs: "6012954215", rhs: "-18446744073709551635", expecting: "18446744079722505850") + self.subTest(lhs: "-6012954215", rhs: "0", expecting: "-6012954215") + self.subTest(lhs: "-6012954215", rhs: "1", expecting: "-6012954216") + self.subTest(lhs: "-6012954215", rhs: "-1", expecting: "-6012954214") + self.subTest(lhs: "-6012954215", rhs: "18446744073709551615", expecting: "-18446744079722505830") + self.subTest(lhs: "-6012954215", rhs: "-18446744073709551615", expecting: "18446744067696597400") + self.subTest(lhs: "-6012954215", rhs: "18446744073709551617", expecting: "-18446744079722505832") + self.subTest(lhs: "-6012954215", rhs: "-18446744073709551617", expecting: "18446744067696597402") + self.subTest(lhs: "-6012954215", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351511490717289") + self.subTest(lhs: "-6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351499464808859") + self.subTest(lhs: "-6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915259874338412") + self.subTest(lhs: "-6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915247848429982") + self.subTest(lhs: "-6012954215", rhs: "18446744073709551623", expecting: "-18446744079722505838") + self.subTest(lhs: "-6012954215", rhs: "-18446744073709551623", expecting: "18446744067696597408") + self.subTest(lhs: "-6012954215", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815953748026985") + self.subTest(lhs: "-6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815941722118555") + self.subTest(lhs: "-6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095408226297458") + self.subTest(lhs: "-6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095396200389028") + self.subTest(lhs: "-6012954215", rhs: "18446744073709551629", expecting: "-18446744079722505844") + self.subTest(lhs: "-6012954215", rhs: "-18446744073709551629", expecting: "18446744067696597414") + self.subTest(lhs: "-6012954215", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280396005336681") + self.subTest(lhs: "-6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280383979428251") + self.subTest(lhs: "-6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275556578256504") + self.subTest(lhs: "-6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275544552348074") + self.subTest(lhs: "-6012954215", rhs: "18446744073709551635", expecting: "-18446744079722505850") + self.subTest(lhs: "-6012954215", rhs: "-18446744073709551635", expecting: "18446744067696597420") + self.subTest(lhs: "5153960756", rhs: "0", expecting: "5153960756") + self.subTest(lhs: "5153960756", rhs: "1", expecting: "5153960755") + self.subTest(lhs: "5153960756", rhs: "-1", expecting: "5153960757") + self.subTest(lhs: "5153960756", rhs: "18446744073709551615", expecting: "-18446744068555590859") + self.subTest(lhs: "5153960756", rhs: "-18446744073709551615", expecting: "18446744078863512371") + self.subTest(lhs: "5153960756", rhs: "18446744073709551617", expecting: "-18446744068555590861") + self.subTest(lhs: "5153960756", rhs: "-18446744073709551617", expecting: "18446744078863512373") + self.subTest(lhs: "5153960756", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351500323802318") + self.subTest(lhs: "5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351510631723830") + self.subTest(lhs: "5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915248707423441") + self.subTest(lhs: "5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915259015344953") + self.subTest(lhs: "5153960756", rhs: "18446744073709551623", expecting: "-18446744068555590867") + self.subTest(lhs: "5153960756", rhs: "-18446744073709551623", expecting: "18446744078863512379") + self.subTest(lhs: "5153960756", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815942581112014") + self.subTest(lhs: "5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815952889033526") + self.subTest(lhs: "5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095397059382487") + self.subTest(lhs: "5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095407367303999") + self.subTest(lhs: "5153960756", rhs: "18446744073709551629", expecting: "-18446744068555590873") + self.subTest(lhs: "5153960756", rhs: "-18446744073709551629", expecting: "18446744078863512385") + self.subTest(lhs: "5153960756", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280384838421710") + self.subTest(lhs: "5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280395146343222") + self.subTest(lhs: "5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275545411341533") + self.subTest(lhs: "5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275555719263045") + self.subTest(lhs: "5153960756", rhs: "18446744073709551635", expecting: "-18446744068555590879") + self.subTest(lhs: "5153960756", rhs: "-18446744073709551635", expecting: "18446744078863512391") + self.subTest(lhs: "-5153960756", rhs: "0", expecting: "-5153960756") + self.subTest(lhs: "-5153960756", rhs: "1", expecting: "-5153960757") + self.subTest(lhs: "-5153960756", rhs: "-1", expecting: "-5153960755") + self.subTest(lhs: "-5153960756", rhs: "18446744073709551615", expecting: "-18446744078863512371") + self.subTest(lhs: "-5153960756", rhs: "-18446744073709551615", expecting: "18446744068555590859") + self.subTest(lhs: "-5153960756", rhs: "18446744073709551617", expecting: "-18446744078863512373") + self.subTest(lhs: "-5153960756", rhs: "-18446744073709551617", expecting: "18446744068555590861") + self.subTest(lhs: "-5153960756", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351510631723830") + self.subTest(lhs: "-5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351500323802318") + self.subTest(lhs: "-5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915259015344953") + self.subTest(lhs: "-5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915248707423441") + self.subTest(lhs: "-5153960756", rhs: "18446744073709551623", expecting: "-18446744078863512379") + self.subTest(lhs: "-5153960756", rhs: "-18446744073709551623", expecting: "18446744068555590867") + self.subTest(lhs: "-5153960756", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815952889033526") + self.subTest(lhs: "-5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815942581112014") + self.subTest(lhs: "-5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095407367303999") + self.subTest(lhs: "-5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095397059382487") + self.subTest(lhs: "-5153960756", rhs: "18446744073709551629", expecting: "-18446744078863512385") + self.subTest(lhs: "-5153960756", rhs: "-18446744073709551629", expecting: "18446744068555590873") + self.subTest(lhs: "-5153960756", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280395146343222") + self.subTest(lhs: "-5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280384838421710") + self.subTest(lhs: "-5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275555719263045") + self.subTest(lhs: "-5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275545411341533") + self.subTest(lhs: "-5153960756", rhs: "18446744073709551635", expecting: "-18446744078863512391") + self.subTest(lhs: "-5153960756", rhs: "-18446744073709551635", expecting: "18446744068555590879") + self.subTest(lhs: "4294967297", rhs: "0", expecting: "4294967297") + self.subTest(lhs: "4294967297", rhs: "1", expecting: "4294967296") + self.subTest(lhs: "4294967297", rhs: "-1", expecting: "4294967298") + self.subTest(lhs: "4294967297", rhs: "18446744073709551615", expecting: "-18446744069414584318") + self.subTest(lhs: "4294967297", rhs: "-18446744073709551615", expecting: "18446744078004518912") + self.subTest(lhs: "4294967297", rhs: "18446744073709551617", expecting: "-18446744069414584320") + self.subTest(lhs: "4294967297", rhs: "-18446744073709551617", expecting: "18446744078004518914") + self.subTest(lhs: "4294967297", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351501182795777") + self.subTest(lhs: "4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351509772730371") + self.subTest(lhs: "4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915249566416900") + self.subTest(lhs: "4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915258156351494") + self.subTest(lhs: "4294967297", rhs: "18446744073709551623", expecting: "-18446744069414584326") + self.subTest(lhs: "4294967297", rhs: "-18446744073709551623", expecting: "18446744078004518920") + self.subTest(lhs: "4294967297", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815943440105473") + self.subTest(lhs: "4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815952030040067") + self.subTest(lhs: "4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095397918375946") + self.subTest(lhs: "4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095406508310540") + self.subTest(lhs: "4294967297", rhs: "18446744073709551629", expecting: "-18446744069414584332") + self.subTest(lhs: "4294967297", rhs: "-18446744073709551629", expecting: "18446744078004518926") + self.subTest(lhs: "4294967297", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280385697415169") + self.subTest(lhs: "4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280394287349763") + self.subTest(lhs: "4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275546270334992") + self.subTest(lhs: "4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275554860269586") + self.subTest(lhs: "4294967297", rhs: "18446744073709551635", expecting: "-18446744069414584338") + self.subTest(lhs: "4294967297", rhs: "-18446744073709551635", expecting: "18446744078004518932") + self.subTest(lhs: "-4294967297", rhs: "0", expecting: "-4294967297") + self.subTest(lhs: "-4294967297", rhs: "1", expecting: "-4294967298") + self.subTest(lhs: "-4294967297", rhs: "-1", expecting: "-4294967296") + self.subTest(lhs: "-4294967297", rhs: "18446744073709551615", expecting: "-18446744078004518912") + self.subTest(lhs: "-4294967297", rhs: "-18446744073709551615", expecting: "18446744069414584318") + self.subTest(lhs: "-4294967297", rhs: "18446744073709551617", expecting: "-18446744078004518914") + self.subTest(lhs: "-4294967297", rhs: "-18446744073709551617", expecting: "18446744069414584320") + self.subTest(lhs: "-4294967297", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351509772730371") + self.subTest(lhs: "-4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351501182795777") + self.subTest(lhs: "-4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915258156351494") + self.subTest(lhs: "-4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915249566416900") + self.subTest(lhs: "-4294967297", rhs: "18446744073709551623", expecting: "-18446744078004518920") + self.subTest(lhs: "-4294967297", rhs: "-18446744073709551623", expecting: "18446744069414584326") + self.subTest(lhs: "-4294967297", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815952030040067") + self.subTest(lhs: "-4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815943440105473") + self.subTest(lhs: "-4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095406508310540") + self.subTest(lhs: "-4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095397918375946") + self.subTest(lhs: "-4294967297", rhs: "18446744073709551629", expecting: "-18446744078004518926") + self.subTest(lhs: "-4294967297", rhs: "-18446744073709551629", expecting: "18446744069414584332") + self.subTest(lhs: "-4294967297", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280394287349763") + self.subTest(lhs: "-4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280385697415169") + self.subTest(lhs: "-4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275554860269586") + self.subTest(lhs: "-4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275546270334992") + self.subTest(lhs: "-4294967297", rhs: "18446744073709551635", expecting: "-18446744078004518932") + self.subTest(lhs: "-4294967297", rhs: "-18446744073709551635", expecting: "18446744069414584338") + self.subTest(lhs: "3435973838", rhs: "0", expecting: "3435973838") + self.subTest(lhs: "3435973838", rhs: "1", expecting: "3435973837") + self.subTest(lhs: "3435973838", rhs: "-1", expecting: "3435973839") + self.subTest(lhs: "3435973838", rhs: "18446744073709551615", expecting: "-18446744070273577777") + self.subTest(lhs: "3435973838", rhs: "-18446744073709551615", expecting: "18446744077145525453") + self.subTest(lhs: "3435973838", rhs: "18446744073709551617", expecting: "-18446744070273577779") + self.subTest(lhs: "3435973838", rhs: "-18446744073709551617", expecting: "18446744077145525455") + self.subTest(lhs: "3435973838", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351502041789236") + self.subTest(lhs: "3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351508913736912") + self.subTest(lhs: "3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915250425410359") + self.subTest(lhs: "3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915257297358035") + self.subTest(lhs: "3435973838", rhs: "18446744073709551623", expecting: "-18446744070273577785") + self.subTest(lhs: "3435973838", rhs: "-18446744073709551623", expecting: "18446744077145525461") + self.subTest(lhs: "3435973838", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815944299098932") + self.subTest(lhs: "3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815951171046608") + self.subTest(lhs: "3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095398777369405") + self.subTest(lhs: "3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095405649317081") + self.subTest(lhs: "3435973838", rhs: "18446744073709551629", expecting: "-18446744070273577791") + self.subTest(lhs: "3435973838", rhs: "-18446744073709551629", expecting: "18446744077145525467") + self.subTest(lhs: "3435973838", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280386556408628") + self.subTest(lhs: "3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280393428356304") + self.subTest(lhs: "3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275547129328451") + self.subTest(lhs: "3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275554001276127") + self.subTest(lhs: "3435973838", rhs: "18446744073709551635", expecting: "-18446744070273577797") + self.subTest(lhs: "3435973838", rhs: "-18446744073709551635", expecting: "18446744077145525473") + self.subTest(lhs: "-3435973838", rhs: "0", expecting: "-3435973838") + self.subTest(lhs: "-3435973838", rhs: "1", expecting: "-3435973839") + self.subTest(lhs: "-3435973838", rhs: "-1", expecting: "-3435973837") + self.subTest(lhs: "-3435973838", rhs: "18446744073709551615", expecting: "-18446744077145525453") + self.subTest(lhs: "-3435973838", rhs: "-18446744073709551615", expecting: "18446744070273577777") + self.subTest(lhs: "-3435973838", rhs: "18446744073709551617", expecting: "-18446744077145525455") + self.subTest(lhs: "-3435973838", rhs: "-18446744073709551617", expecting: "18446744070273577779") + self.subTest(lhs: "-3435973838", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351508913736912") + self.subTest(lhs: "-3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351502041789236") + self.subTest(lhs: "-3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915257297358035") + self.subTest(lhs: "-3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915250425410359") + self.subTest(lhs: "-3435973838", rhs: "18446744073709551623", expecting: "-18446744077145525461") + self.subTest(lhs: "-3435973838", rhs: "-18446744073709551623", expecting: "18446744070273577785") + self.subTest(lhs: "-3435973838", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815951171046608") + self.subTest(lhs: "-3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815944299098932") + self.subTest(lhs: "-3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095405649317081") + self.subTest(lhs: "-3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095398777369405") + self.subTest(lhs: "-3435973838", rhs: "18446744073709551629", expecting: "-18446744077145525467") + self.subTest(lhs: "-3435973838", rhs: "-18446744073709551629", expecting: "18446744070273577791") + self.subTest(lhs: "-3435973838", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280393428356304") + self.subTest(lhs: "-3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280386556408628") + self.subTest(lhs: "-3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275554001276127") + self.subTest(lhs: "-3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275547129328451") + self.subTest(lhs: "-3435973838", rhs: "18446744073709551635", expecting: "-18446744077145525473") + self.subTest(lhs: "-3435973838", rhs: "-18446744073709551635", expecting: "18446744070273577797") + self.subTest(lhs: "2576980379", rhs: "0", expecting: "2576980379") + self.subTest(lhs: "2576980379", rhs: "1", expecting: "2576980378") + self.subTest(lhs: "2576980379", rhs: "-1", expecting: "2576980380") + self.subTest(lhs: "2576980379", rhs: "18446744073709551615", expecting: "-18446744071132571236") + self.subTest(lhs: "2576980379", rhs: "-18446744073709551615", expecting: "18446744076286531994") + self.subTest(lhs: "2576980379", rhs: "18446744073709551617", expecting: "-18446744071132571238") + self.subTest(lhs: "2576980379", rhs: "-18446744073709551617", expecting: "18446744076286531996") + self.subTest(lhs: "2576980379", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351502900782695") + self.subTest(lhs: "2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351508054743453") + self.subTest(lhs: "2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915251284403818") + self.subTest(lhs: "2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915256438364576") + self.subTest(lhs: "2576980379", rhs: "18446744073709551623", expecting: "-18446744071132571244") + self.subTest(lhs: "2576980379", rhs: "-18446744073709551623", expecting: "18446744076286532002") + self.subTest(lhs: "2576980379", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815945158092391") + self.subTest(lhs: "2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815950312053149") + self.subTest(lhs: "2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095399636362864") + self.subTest(lhs: "2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404790323622") + self.subTest(lhs: "2576980379", rhs: "18446744073709551629", expecting: "-18446744071132571250") + self.subTest(lhs: "2576980379", rhs: "-18446744073709551629", expecting: "18446744076286532008") + self.subTest(lhs: "2576980379", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280387415402087") + self.subTest(lhs: "2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280392569362845") + self.subTest(lhs: "2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275547988321910") + self.subTest(lhs: "2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275553142282668") + self.subTest(lhs: "2576980379", rhs: "18446744073709551635", expecting: "-18446744071132571256") + self.subTest(lhs: "2576980379", rhs: "-18446744073709551635", expecting: "18446744076286532014") + self.subTest(lhs: "-2576980379", rhs: "0", expecting: "-2576980379") + self.subTest(lhs: "-2576980379", rhs: "1", expecting: "-2576980380") + self.subTest(lhs: "-2576980379", rhs: "-1", expecting: "-2576980378") + self.subTest(lhs: "-2576980379", rhs: "18446744073709551615", expecting: "-18446744076286531994") + self.subTest(lhs: "-2576980379", rhs: "-18446744073709551615", expecting: "18446744071132571236") + self.subTest(lhs: "-2576980379", rhs: "18446744073709551617", expecting: "-18446744076286531996") + self.subTest(lhs: "-2576980379", rhs: "-18446744073709551617", expecting: "18446744071132571238") + self.subTest(lhs: "-2576980379", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351508054743453") + self.subTest(lhs: "-2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351502900782695") + self.subTest(lhs: "-2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915256438364576") + self.subTest(lhs: "-2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915251284403818") + self.subTest(lhs: "-2576980379", rhs: "18446744073709551623", expecting: "-18446744076286532002") + self.subTest(lhs: "-2576980379", rhs: "-18446744073709551623", expecting: "18446744071132571244") + self.subTest(lhs: "-2576980379", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815950312053149") + self.subTest(lhs: "-2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815945158092391") + self.subTest(lhs: "-2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404790323622") + self.subTest(lhs: "-2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095399636362864") + self.subTest(lhs: "-2576980379", rhs: "18446744073709551629", expecting: "-18446744076286532008") + self.subTest(lhs: "-2576980379", rhs: "-18446744073709551629", expecting: "18446744071132571250") + self.subTest(lhs: "-2576980379", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280392569362845") + self.subTest(lhs: "-2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280387415402087") + self.subTest(lhs: "-2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275553142282668") + self.subTest(lhs: "-2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275547988321910") + self.subTest(lhs: "-2576980379", rhs: "18446744073709551635", expecting: "-18446744076286532014") + self.subTest(lhs: "-2576980379", rhs: "-18446744073709551635", expecting: "18446744071132571256") + self.subTest(lhs: "1717986920", rhs: "0", expecting: "1717986920") + self.subTest(lhs: "1717986920", rhs: "1", expecting: "1717986919") + self.subTest(lhs: "1717986920", rhs: "-1", expecting: "1717986921") + self.subTest(lhs: "1717986920", rhs: "18446744073709551615", expecting: "-18446744071991564695") + self.subTest(lhs: "1717986920", rhs: "-18446744073709551615", expecting: "18446744075427538535") + self.subTest(lhs: "1717986920", rhs: "18446744073709551617", expecting: "-18446744071991564697") + self.subTest(lhs: "1717986920", rhs: "-18446744073709551617", expecting: "18446744075427538537") + self.subTest(lhs: "1717986920", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351503759776154") + self.subTest(lhs: "1717986920", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351507195749994") + self.subTest(lhs: "1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915252143397277") + self.subTest(lhs: "1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255579371117") + self.subTest(lhs: "1717986920", rhs: "18446744073709551623", expecting: "-18446744071991564703") + self.subTest(lhs: "1717986920", rhs: "-18446744073709551623", expecting: "18446744075427538543") + self.subTest(lhs: "1717986920", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946017085850") + self.subTest(lhs: "1717986920", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815949453059690") + self.subTest(lhs: "1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095400495356323") + self.subTest(lhs: "1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403931330163") + self.subTest(lhs: "1717986920", rhs: "18446744073709551629", expecting: "-18446744071991564709") + self.subTest(lhs: "1717986920", rhs: "-18446744073709551629", expecting: "18446744075427538549") + self.subTest(lhs: "1717986920", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280388274395546") + self.subTest(lhs: "1717986920", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280391710369386") + self.subTest(lhs: "1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275548847315369") + self.subTest(lhs: "1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552283289209") + self.subTest(lhs: "1717986920", rhs: "18446744073709551635", expecting: "-18446744071991564715") + self.subTest(lhs: "1717986920", rhs: "-18446744073709551635", expecting: "18446744075427538555") + 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: "858993461", rhs: "0", expecting: "858993461") + self.subTest(lhs: "858993461", rhs: "1", expecting: "858993460") + self.subTest(lhs: "858993461", rhs: "-1", expecting: "858993462") + self.subTest(lhs: "858993461", rhs: "18446744073709551615", expecting: "-18446744072850558154") + self.subTest(lhs: "858993461", rhs: "-18446744073709551615", expecting: "18446744074568545076") + self.subTest(lhs: "858993461", rhs: "18446744073709551617", expecting: "-18446744072850558156") + self.subTest(lhs: "858993461", rhs: "-18446744073709551617", expecting: "18446744074568545078") + self.subTest(lhs: "858993461", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351504618769613") + self.subTest(lhs: "858993461", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351506336756535") + self.subTest(lhs: "858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253002390736") + self.subTest(lhs: "858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254720377658") + self.subTest(lhs: "858993461", rhs: "18446744073709551623", expecting: "-18446744072850558162") + self.subTest(lhs: "858993461", rhs: "-18446744073709551623", expecting: "18446744074568545084") + self.subTest(lhs: "858993461", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815946876079309") + self.subTest(lhs: "858993461", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815948594066231") + self.subTest(lhs: "858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095401354349782") + self.subTest(lhs: "858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403072336704") + self.subTest(lhs: "858993461", rhs: "18446744073709551629", expecting: "-18446744072850558168") + self.subTest(lhs: "858993461", rhs: "-18446744073709551629", expecting: "18446744074568545090") + self.subTest(lhs: "858993461", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389133389005") + self.subTest(lhs: "858993461", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280390851375927") + self.subTest(lhs: "858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275549706308828") + self.subTest(lhs: "858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551424295750") + self.subTest(lhs: "858993461", rhs: "18446744073709551635", expecting: "-18446744072850558174") + self.subTest(lhs: "858993461", rhs: "-18446744073709551635", expecting: "18446744074568545096") + self.subTest(lhs: "-858993461", rhs: "0", expecting: "-858993461") + self.subTest(lhs: "-858993461", rhs: "1", expecting: "-858993462") + self.subTest(lhs: "-858993461", rhs: "-1", expecting: "-858993460") + self.subTest(lhs: "-858993461", rhs: "18446744073709551615", expecting: "-18446744074568545076") + self.subTest(lhs: "-858993461", rhs: "-18446744073709551615", expecting: "18446744072850558154") + self.subTest(lhs: "-858993461", rhs: "18446744073709551617", expecting: "-18446744074568545078") + self.subTest(lhs: "-858993461", rhs: "-18446744073709551617", expecting: "18446744072850558156") + self.subTest(lhs: "-858993461", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506336756535") + self.subTest(lhs: "-858993461", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351504618769613") + self.subTest(lhs: "-858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254720377658") + self.subTest(lhs: "-858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253002390736") + self.subTest(lhs: "-858993461", rhs: "18446744073709551623", expecting: "-18446744074568545084") + self.subTest(lhs: "-858993461", rhs: "-18446744073709551623", expecting: "18446744072850558162") + self.subTest(lhs: "-858993461", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948594066231") + self.subTest(lhs: "-858993461", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815946876079309") + self.subTest(lhs: "-858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403072336704") + self.subTest(lhs: "-858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095401354349782") + self.subTest(lhs: "-858993461", rhs: "18446744073709551629", expecting: "-18446744074568545090") + self.subTest(lhs: "-858993461", rhs: "-18446744073709551629", expecting: "18446744072850558168") + self.subTest(lhs: "-858993461", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390851375927") + self.subTest(lhs: "-858993461", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280389133389005") + self.subTest(lhs: "-858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551424295750") + self.subTest(lhs: "-858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275549706308828") + self.subTest(lhs: "-858993461", rhs: "18446744073709551635", expecting: "-18446744074568545096") + self.subTest(lhs: "-858993461", rhs: "-18446744073709551635", expecting: "18446744072850558174") + } + + func test_sub_big_int() { + 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: "8589934592", expecting: "-8589934592") + self.subTest(lhs: "0", rhs: "-8589934592", expecting: "8589934592") + self.subTest(lhs: "0", rhs: "7730941133", expecting: "-7730941133") + self.subTest(lhs: "0", rhs: "-7730941133", expecting: "7730941133") + self.subTest(lhs: "0", rhs: "6871947674", expecting: "-6871947674") + self.subTest(lhs: "0", rhs: "-6871947674", expecting: "6871947674") + self.subTest(lhs: "0", rhs: "6012954215", expecting: "-6012954215") + self.subTest(lhs: "0", rhs: "-6012954215", expecting: "6012954215") + self.subTest(lhs: "0", rhs: "5153960756", expecting: "-5153960756") + self.subTest(lhs: "0", rhs: "-5153960756", expecting: "5153960756") + self.subTest(lhs: "0", rhs: "4294967297", expecting: "-4294967297") + self.subTest(lhs: "0", rhs: "-4294967297", expecting: "4294967297") + self.subTest(lhs: "0", rhs: "3435973838", expecting: "-3435973838") + self.subTest(lhs: "0", rhs: "-3435973838", expecting: "3435973838") + self.subTest(lhs: "0", rhs: "2576980379", expecting: "-2576980379") + self.subTest(lhs: "0", rhs: "-2576980379", expecting: "2576980379") + self.subTest(lhs: "0", rhs: "1717986920", expecting: "-1717986920") + self.subTest(lhs: "0", rhs: "-1717986920", expecting: "1717986920") + self.subTest(lhs: "0", rhs: "858993461", expecting: "-858993461") + self.subTest(lhs: "0", rhs: "-858993461", expecting: "858993461") + 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: "8589934592", expecting: "-8589934591") + self.subTest(lhs: "1", rhs: "-8589934592", expecting: "8589934593") + self.subTest(lhs: "1", rhs: "7730941133", expecting: "-7730941132") + self.subTest(lhs: "1", rhs: "-7730941133", expecting: "7730941134") + self.subTest(lhs: "1", rhs: "6871947674", expecting: "-6871947673") + self.subTest(lhs: "1", rhs: "-6871947674", expecting: "6871947675") + self.subTest(lhs: "1", rhs: "6012954215", expecting: "-6012954214") + self.subTest(lhs: "1", rhs: "-6012954215", expecting: "6012954216") + self.subTest(lhs: "1", rhs: "5153960756", expecting: "-5153960755") + self.subTest(lhs: "1", rhs: "-5153960756", expecting: "5153960757") + self.subTest(lhs: "1", rhs: "4294967297", expecting: "-4294967296") + self.subTest(lhs: "1", rhs: "-4294967297", expecting: "4294967298") + self.subTest(lhs: "1", rhs: "3435973838", expecting: "-3435973837") + self.subTest(lhs: "1", rhs: "-3435973838", expecting: "3435973839") + self.subTest(lhs: "1", rhs: "2576980379", expecting: "-2576980378") + self.subTest(lhs: "1", rhs: "-2576980379", expecting: "2576980380") + self.subTest(lhs: "1", rhs: "1717986920", expecting: "-1717986919") + self.subTest(lhs: "1", rhs: "-1717986920", expecting: "1717986921") + self.subTest(lhs: "1", rhs: "858993461", expecting: "-858993460") + self.subTest(lhs: "1", rhs: "-858993461", expecting: "858993462") + 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: "8589934592", expecting: "-8589934593") + self.subTest(lhs: "-1", rhs: "-8589934592", expecting: "8589934591") + self.subTest(lhs: "-1", rhs: "7730941133", expecting: "-7730941134") + self.subTest(lhs: "-1", rhs: "-7730941133", expecting: "7730941132") + self.subTest(lhs: "-1", rhs: "6871947674", expecting: "-6871947675") + self.subTest(lhs: "-1", rhs: "-6871947674", expecting: "6871947673") + self.subTest(lhs: "-1", rhs: "6012954215", expecting: "-6012954216") + self.subTest(lhs: "-1", rhs: "-6012954215", expecting: "6012954214") + self.subTest(lhs: "-1", rhs: "5153960756", expecting: "-5153960757") + self.subTest(lhs: "-1", rhs: "-5153960756", expecting: "5153960755") + self.subTest(lhs: "-1", rhs: "4294967297", expecting: "-4294967298") + self.subTest(lhs: "-1", rhs: "-4294967297", expecting: "4294967296") + self.subTest(lhs: "-1", rhs: "3435973838", expecting: "-3435973839") + self.subTest(lhs: "-1", rhs: "-3435973838", expecting: "3435973837") + self.subTest(lhs: "-1", rhs: "2576980379", expecting: "-2576980380") + self.subTest(lhs: "-1", rhs: "-2576980379", expecting: "2576980378") + self.subTest(lhs: "-1", rhs: "1717986920", expecting: "-1717986921") + self.subTest(lhs: "-1", rhs: "-1717986920", expecting: "1717986919") + self.subTest(lhs: "-1", rhs: "858993461", expecting: "-858993462") + self.subTest(lhs: "-1", rhs: "-858993461", expecting: "858993460") + 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: "8589934592", expecting: "18446744065119617023") + self.subTest(lhs: "18446744073709551615", rhs: "-8589934592", expecting: "18446744082299486207") + self.subTest(lhs: "18446744073709551615", rhs: "7730941133", expecting: "18446744065978610482") + self.subTest(lhs: "18446744073709551615", rhs: "-7730941133", expecting: "18446744081440492748") + self.subTest(lhs: "18446744073709551615", rhs: "6871947674", expecting: "18446744066837603941") + self.subTest(lhs: "18446744073709551615", rhs: "-6871947674", expecting: "18446744080581499289") + self.subTest(lhs: "18446744073709551615", rhs: "6012954215", expecting: "18446744067696597400") + self.subTest(lhs: "18446744073709551615", rhs: "-6012954215", expecting: "18446744079722505830") + self.subTest(lhs: "18446744073709551615", rhs: "5153960756", expecting: "18446744068555590859") + self.subTest(lhs: "18446744073709551615", rhs: "-5153960756", expecting: "18446744078863512371") + self.subTest(lhs: "18446744073709551615", rhs: "4294967297", expecting: "18446744069414584318") + self.subTest(lhs: "18446744073709551615", rhs: "-4294967297", expecting: "18446744078004518912") + self.subTest(lhs: "18446744073709551615", rhs: "3435973838", expecting: "18446744070273577777") + self.subTest(lhs: "18446744073709551615", rhs: "-3435973838", expecting: "18446744077145525453") + self.subTest(lhs: "18446744073709551615", rhs: "2576980379", expecting: "18446744071132571236") + self.subTest(lhs: "18446744073709551615", rhs: "-2576980379", expecting: "18446744076286531994") + self.subTest(lhs: "18446744073709551615", rhs: "1717986920", expecting: "18446744071991564695") + self.subTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "18446744075427538535") + self.subTest(lhs: "18446744073709551615", rhs: "858993461", expecting: "18446744072850558154") + self.subTest(lhs: "18446744073709551615", rhs: "-858993461", expecting: "18446744074568545076") + 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: "8589934592", expecting: "-18446744082299486207") + self.subTest(lhs: "-18446744073709551615", rhs: "-8589934592", expecting: "-18446744065119617023") + self.subTest(lhs: "-18446744073709551615", rhs: "7730941133", expecting: "-18446744081440492748") + self.subTest(lhs: "-18446744073709551615", rhs: "-7730941133", expecting: "-18446744065978610482") + self.subTest(lhs: "-18446744073709551615", rhs: "6871947674", expecting: "-18446744080581499289") + self.subTest(lhs: "-18446744073709551615", rhs: "-6871947674", expecting: "-18446744066837603941") + self.subTest(lhs: "-18446744073709551615", rhs: "6012954215", expecting: "-18446744079722505830") + self.subTest(lhs: "-18446744073709551615", rhs: "-6012954215", expecting: "-18446744067696597400") + self.subTest(lhs: "-18446744073709551615", rhs: "5153960756", expecting: "-18446744078863512371") + self.subTest(lhs: "-18446744073709551615", rhs: "-5153960756", expecting: "-18446744068555590859") + self.subTest(lhs: "-18446744073709551615", rhs: "4294967297", expecting: "-18446744078004518912") + self.subTest(lhs: "-18446744073709551615", rhs: "-4294967297", expecting: "-18446744069414584318") + self.subTest(lhs: "-18446744073709551615", rhs: "3435973838", expecting: "-18446744077145525453") + self.subTest(lhs: "-18446744073709551615", rhs: "-3435973838", expecting: "-18446744070273577777") + self.subTest(lhs: "-18446744073709551615", rhs: "2576980379", expecting: "-18446744076286531994") + self.subTest(lhs: "-18446744073709551615", rhs: "-2576980379", expecting: "-18446744071132571236") + self.subTest(lhs: "-18446744073709551615", rhs: "1717986920", expecting: "-18446744075427538535") + self.subTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "-18446744071991564695") + self.subTest(lhs: "-18446744073709551615", rhs: "858993461", expecting: "-18446744074568545076") + self.subTest(lhs: "-18446744073709551615", rhs: "-858993461", expecting: "-18446744072850558154") + 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: "8589934592", expecting: "18446744065119617025") + self.subTest(lhs: "18446744073709551617", rhs: "-8589934592", expecting: "18446744082299486209") + self.subTest(lhs: "18446744073709551617", rhs: "7730941133", expecting: "18446744065978610484") + self.subTest(lhs: "18446744073709551617", rhs: "-7730941133", expecting: "18446744081440492750") + self.subTest(lhs: "18446744073709551617", rhs: "6871947674", expecting: "18446744066837603943") + self.subTest(lhs: "18446744073709551617", rhs: "-6871947674", expecting: "18446744080581499291") + self.subTest(lhs: "18446744073709551617", rhs: "6012954215", expecting: "18446744067696597402") + self.subTest(lhs: "18446744073709551617", rhs: "-6012954215", expecting: "18446744079722505832") + self.subTest(lhs: "18446744073709551617", rhs: "5153960756", expecting: "18446744068555590861") + self.subTest(lhs: "18446744073709551617", rhs: "-5153960756", expecting: "18446744078863512373") + self.subTest(lhs: "18446744073709551617", rhs: "4294967297", expecting: "18446744069414584320") + self.subTest(lhs: "18446744073709551617", rhs: "-4294967297", expecting: "18446744078004518914") + self.subTest(lhs: "18446744073709551617", rhs: "3435973838", expecting: "18446744070273577779") + self.subTest(lhs: "18446744073709551617", rhs: "-3435973838", expecting: "18446744077145525455") + self.subTest(lhs: "18446744073709551617", rhs: "2576980379", expecting: "18446744071132571238") + self.subTest(lhs: "18446744073709551617", rhs: "-2576980379", expecting: "18446744076286531996") + self.subTest(lhs: "18446744073709551617", rhs: "1717986920", expecting: "18446744071991564697") + self.subTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "18446744075427538537") + self.subTest(lhs: "18446744073709551617", rhs: "858993461", expecting: "18446744072850558156") + self.subTest(lhs: "18446744073709551617", rhs: "-858993461", expecting: "18446744074568545078") + 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: "8589934592", expecting: "-18446744082299486209") + self.subTest(lhs: "-18446744073709551617", rhs: "-8589934592", expecting: "-18446744065119617025") + self.subTest(lhs: "-18446744073709551617", rhs: "7730941133", expecting: "-18446744081440492750") + self.subTest(lhs: "-18446744073709551617", rhs: "-7730941133", expecting: "-18446744065978610484") + self.subTest(lhs: "-18446744073709551617", rhs: "6871947674", expecting: "-18446744080581499291") + self.subTest(lhs: "-18446744073709551617", rhs: "-6871947674", expecting: "-18446744066837603943") + self.subTest(lhs: "-18446744073709551617", rhs: "6012954215", expecting: "-18446744079722505832") + self.subTest(lhs: "-18446744073709551617", rhs: "-6012954215", expecting: "-18446744067696597402") + self.subTest(lhs: "-18446744073709551617", rhs: "5153960756", expecting: "-18446744078863512373") + self.subTest(lhs: "-18446744073709551617", rhs: "-5153960756", expecting: "-18446744068555590861") + self.subTest(lhs: "-18446744073709551617", rhs: "4294967297", expecting: "-18446744078004518914") + self.subTest(lhs: "-18446744073709551617", rhs: "-4294967297", expecting: "-18446744069414584320") + self.subTest(lhs: "-18446744073709551617", rhs: "3435973838", expecting: "-18446744077145525455") + self.subTest(lhs: "-18446744073709551617", rhs: "-3435973838", expecting: "-18446744070273577779") + self.subTest(lhs: "-18446744073709551617", rhs: "2576980379", expecting: "-18446744076286531996") + self.subTest(lhs: "-18446744073709551617", rhs: "-2576980379", expecting: "-18446744071132571238") + self.subTest(lhs: "-18446744073709551617", rhs: "1717986920", expecting: "-18446744075427538537") + self.subTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "-18446744071991564697") + self.subTest(lhs: "-18446744073709551617", rhs: "858993461", expecting: "-18446744074568545078") + self.subTest(lhs: "-18446744073709551617", rhs: "-858993461", expecting: "-18446744072850558156") + 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: "8589934592", expecting: "340282366920938463481821351496887828482") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "340282366920938463481821351514067697666") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "7730941133", expecting: "340282366920938463481821351497746821941") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "340282366920938463481821351513208704207") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "6871947674", expecting: "340282366920938463481821351498605815400") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "340282366920938463481821351512349710748") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "6012954215", expecting: "340282366920938463481821351499464808859") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "340282366920938463481821351511490717289") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "5153960756", expecting: "340282366920938463481821351500323802318") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "340282366920938463481821351510631723830") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "4294967297", expecting: "340282366920938463481821351501182795777") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "340282366920938463481821351509772730371") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "3435973838", expecting: "340282366920938463481821351502041789236") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "340282366920938463481821351508913736912") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "2576980379", expecting: "340282366920938463481821351502900782695") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "340282366920938463481821351508054743453") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986920", expecting: "340282366920938463481821351503759776154") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "340282366920938463481821351507195749994") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "858993461", expecting: "340282366920938463481821351504618769613") + self.subTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993461", expecting: "340282366920938463481821351506336756535") + 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: "8589934592", expecting: "-340282366920938463481821351514067697666") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "-340282366920938463481821351496887828482") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "7730941133", expecting: "-340282366920938463481821351513208704207") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "-340282366920938463481821351497746821941") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "6871947674", expecting: "-340282366920938463481821351512349710748") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "-340282366920938463481821351498605815400") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "6012954215", expecting: "-340282366920938463481821351511490717289") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "-340282366920938463481821351499464808859") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "5153960756", expecting: "-340282366920938463481821351510631723830") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "-340282366920938463481821351500323802318") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "4294967297", expecting: "-340282366920938463481821351509772730371") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "-340282366920938463481821351501182795777") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "3435973838", expecting: "-340282366920938463481821351508913736912") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "-340282366920938463481821351502041789236") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "2576980379", expecting: "-340282366920938463481821351508054743453") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "-340282366920938463481821351502900782695") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986920", expecting: "-340282366920938463481821351507195749994") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-340282366920938463481821351503759776154") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993461", expecting: "-340282366920938463481821351506336756535") + self.subTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993461", expecting: "-340282366920938463481821351504618769613") + 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: "8589934592", expecting: "6277101735386680764516354157049543343010657915245271449605") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "6277101735386680764516354157049543343010657915262451318789") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "6277101735386680764516354157049543343010657915246130443064") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "6277101735386680764516354157049543343010657915261592325330") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "6277101735386680764516354157049543343010657915246989436523") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "6277101735386680764516354157049543343010657915260733331871") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "6277101735386680764516354157049543343010657915247848429982") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "6277101735386680764516354157049543343010657915259874338412") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "6277101735386680764516354157049543343010657915248707423441") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "6277101735386680764516354157049543343010657915259015344953") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "6277101735386680764516354157049543343010657915249566416900") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "6277101735386680764516354157049543343010657915258156351494") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "6277101735386680764516354157049543343010657915250425410359") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "6277101735386680764516354157049543343010657915257297358035") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "6277101735386680764516354157049543343010657915251284403818") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "6277101735386680764516354157049543343010657915256438364576") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "6277101735386680764516354157049543343010657915252143397277") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "6277101735386680764516354157049543343010657915255579371117") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "6277101735386680764516354157049543343010657915253002390736") + self.subTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "6277101735386680764516354157049543343010657915254720377658") + 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: "8589934592", expecting: "-6277101735386680764516354157049543343010657915262451318789") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "-6277101735386680764516354157049543343010657915245271449605") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "-6277101735386680764516354157049543343010657915261592325330") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "-6277101735386680764516354157049543343010657915246130443064") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "-6277101735386680764516354157049543343010657915260733331871") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "-6277101735386680764516354157049543343010657915246989436523") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "-6277101735386680764516354157049543343010657915259874338412") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "-6277101735386680764516354157049543343010657915247848429982") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "-6277101735386680764516354157049543343010657915259015344953") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "-6277101735386680764516354157049543343010657915248707423441") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "-6277101735386680764516354157049543343010657915258156351494") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "-6277101735386680764516354157049543343010657915249566416900") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "-6277101735386680764516354157049543343010657915257297358035") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "-6277101735386680764516354157049543343010657915250425410359") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "-6277101735386680764516354157049543343010657915256438364576") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "-6277101735386680764516354157049543343010657915251284403818") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "-6277101735386680764516354157049543343010657915255579371117") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-6277101735386680764516354157049543343010657915252143397277") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "-6277101735386680764516354157049543343010657915254720377658") + self.subTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "-6277101735386680764516354157049543343010657915253002390736") + 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: "8589934592", expecting: "18446744065119617031") + self.subTest(lhs: "18446744073709551623", rhs: "-8589934592", expecting: "18446744082299486215") + self.subTest(lhs: "18446744073709551623", rhs: "7730941133", expecting: "18446744065978610490") + self.subTest(lhs: "18446744073709551623", rhs: "-7730941133", expecting: "18446744081440492756") + self.subTest(lhs: "18446744073709551623", rhs: "6871947674", expecting: "18446744066837603949") + self.subTest(lhs: "18446744073709551623", rhs: "-6871947674", expecting: "18446744080581499297") + self.subTest(lhs: "18446744073709551623", rhs: "6012954215", expecting: "18446744067696597408") + self.subTest(lhs: "18446744073709551623", rhs: "-6012954215", expecting: "18446744079722505838") + self.subTest(lhs: "18446744073709551623", rhs: "5153960756", expecting: "18446744068555590867") + self.subTest(lhs: "18446744073709551623", rhs: "-5153960756", expecting: "18446744078863512379") + self.subTest(lhs: "18446744073709551623", rhs: "4294967297", expecting: "18446744069414584326") + self.subTest(lhs: "18446744073709551623", rhs: "-4294967297", expecting: "18446744078004518920") + self.subTest(lhs: "18446744073709551623", rhs: "3435973838", expecting: "18446744070273577785") + self.subTest(lhs: "18446744073709551623", rhs: "-3435973838", expecting: "18446744077145525461") + self.subTest(lhs: "18446744073709551623", rhs: "2576980379", expecting: "18446744071132571244") + self.subTest(lhs: "18446744073709551623", rhs: "-2576980379", expecting: "18446744076286532002") + self.subTest(lhs: "18446744073709551623", rhs: "1717986920", expecting: "18446744071991564703") + self.subTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "18446744075427538543") + self.subTest(lhs: "18446744073709551623", rhs: "858993461", expecting: "18446744072850558162") + self.subTest(lhs: "18446744073709551623", rhs: "-858993461", expecting: "18446744074568545084") + 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: "8589934592", expecting: "-18446744082299486215") + self.subTest(lhs: "-18446744073709551623", rhs: "-8589934592", expecting: "-18446744065119617031") + self.subTest(lhs: "-18446744073709551623", rhs: "7730941133", expecting: "-18446744081440492756") + self.subTest(lhs: "-18446744073709551623", rhs: "-7730941133", expecting: "-18446744065978610490") + self.subTest(lhs: "-18446744073709551623", rhs: "6871947674", expecting: "-18446744080581499297") + self.subTest(lhs: "-18446744073709551623", rhs: "-6871947674", expecting: "-18446744066837603949") + self.subTest(lhs: "-18446744073709551623", rhs: "6012954215", expecting: "-18446744079722505838") + self.subTest(lhs: "-18446744073709551623", rhs: "-6012954215", expecting: "-18446744067696597408") + self.subTest(lhs: "-18446744073709551623", rhs: "5153960756", expecting: "-18446744078863512379") + self.subTest(lhs: "-18446744073709551623", rhs: "-5153960756", expecting: "-18446744068555590867") + self.subTest(lhs: "-18446744073709551623", rhs: "4294967297", expecting: "-18446744078004518920") + self.subTest(lhs: "-18446744073709551623", rhs: "-4294967297", expecting: "-18446744069414584326") + self.subTest(lhs: "-18446744073709551623", rhs: "3435973838", expecting: "-18446744077145525461") + self.subTest(lhs: "-18446744073709551623", rhs: "-3435973838", expecting: "-18446744070273577785") + self.subTest(lhs: "-18446744073709551623", rhs: "2576980379", expecting: "-18446744076286532002") + self.subTest(lhs: "-18446744073709551623", rhs: "-2576980379", expecting: "-18446744071132571244") + self.subTest(lhs: "-18446744073709551623", rhs: "1717986920", expecting: "-18446744075427538543") + self.subTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "-18446744071991564703") + self.subTest(lhs: "-18446744073709551623", rhs: "858993461", expecting: "-18446744074568545084") + self.subTest(lhs: "-18446744073709551623", rhs: "-858993461", expecting: "-18446744072850558162") + 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: "8589934592", expecting: "340282366920938463592501815939145138178") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "340282366920938463592501815956325007362") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "7730941133", expecting: "340282366920938463592501815940004131637") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "340282366920938463592501815955466013903") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "6871947674", expecting: "340282366920938463592501815940863125096") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "340282366920938463592501815954607020444") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "6012954215", expecting: "340282366920938463592501815941722118555") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "340282366920938463592501815953748026985") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "5153960756", expecting: "340282366920938463592501815942581112014") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "340282366920938463592501815952889033526") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "4294967297", expecting: "340282366920938463592501815943440105473") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "340282366920938463592501815952030040067") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "3435973838", expecting: "340282366920938463592501815944299098932") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "340282366920938463592501815951171046608") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "2576980379", expecting: "340282366920938463592501815945158092391") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "340282366920938463592501815950312053149") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986920", expecting: "340282366920938463592501815946017085850") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "340282366920938463592501815949453059690") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "858993461", expecting: "340282366920938463592501815946876079309") + self.subTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993461", expecting: "340282366920938463592501815948594066231") + 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: "8589934592", expecting: "-340282366920938463592501815956325007362") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "-340282366920938463592501815939145138178") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "7730941133", expecting: "-340282366920938463592501815955466013903") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "-340282366920938463592501815940004131637") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "6871947674", expecting: "-340282366920938463592501815954607020444") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "-340282366920938463592501815940863125096") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "6012954215", expecting: "-340282366920938463592501815953748026985") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "-340282366920938463592501815941722118555") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "5153960756", expecting: "-340282366920938463592501815952889033526") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "-340282366920938463592501815942581112014") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "4294967297", expecting: "-340282366920938463592501815952030040067") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "-340282366920938463592501815943440105473") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "3435973838", expecting: "-340282366920938463592501815951171046608") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "-340282366920938463592501815944299098932") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "2576980379", expecting: "-340282366920938463592501815950312053149") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "-340282366920938463592501815945158092391") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986920", expecting: "-340282366920938463592501815949453059690") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-340282366920938463592501815946017085850") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993461", expecting: "-340282366920938463592501815948594066231") + self.subTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993461", expecting: "-340282366920938463592501815946876079309") + 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: "8589934592", expecting: "6277101735386680766558048358575174123680225095393623408651") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "6277101735386680766558048358575174123680225095410803277835") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "6277101735386680766558048358575174123680225095394482402110") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "6277101735386680766558048358575174123680225095409944284376") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "6277101735386680766558048358575174123680225095395341395569") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "6277101735386680766558048358575174123680225095409085290917") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "6277101735386680766558048358575174123680225095396200389028") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "6277101735386680766558048358575174123680225095408226297458") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "6277101735386680766558048358575174123680225095397059382487") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "6277101735386680766558048358575174123680225095407367303999") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "6277101735386680766558048358575174123680225095397918375946") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "6277101735386680766558048358575174123680225095406508310540") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "6277101735386680766558048358575174123680225095398777369405") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "6277101735386680766558048358575174123680225095405649317081") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "6277101735386680766558048358575174123680225095399636362864") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "6277101735386680766558048358575174123680225095404790323622") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "6277101735386680766558048358575174123680225095400495356323") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "6277101735386680766558048358575174123680225095403931330163") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "6277101735386680766558048358575174123680225095401354349782") + self.subTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "6277101735386680766558048358575174123680225095403072336704") + 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: "8589934592", expecting: "-6277101735386680766558048358575174123680225095410803277835") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "-6277101735386680766558048358575174123680225095393623408651") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "-6277101735386680766558048358575174123680225095409944284376") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "-6277101735386680766558048358575174123680225095394482402110") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "-6277101735386680766558048358575174123680225095409085290917") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "-6277101735386680766558048358575174123680225095395341395569") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "-6277101735386680766558048358575174123680225095408226297458") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "-6277101735386680766558048358575174123680225095396200389028") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "-6277101735386680766558048358575174123680225095407367303999") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "-6277101735386680766558048358575174123680225095397059382487") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "-6277101735386680766558048358575174123680225095406508310540") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "-6277101735386680766558048358575174123680225095397918375946") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "-6277101735386680766558048358575174123680225095405649317081") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "-6277101735386680766558048358575174123680225095398777369405") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "-6277101735386680766558048358575174123680225095404790323622") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "-6277101735386680766558048358575174123680225095399636362864") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "-6277101735386680766558048358575174123680225095403931330163") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-6277101735386680766558048358575174123680225095400495356323") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "-6277101735386680766558048358575174123680225095403072336704") + self.subTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "-6277101735386680766558048358575174123680225095401354349782") + 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: "8589934592", expecting: "18446744065119617037") + self.subTest(lhs: "18446744073709551629", rhs: "-8589934592", expecting: "18446744082299486221") + self.subTest(lhs: "18446744073709551629", rhs: "7730941133", expecting: "18446744065978610496") + self.subTest(lhs: "18446744073709551629", rhs: "-7730941133", expecting: "18446744081440492762") + self.subTest(lhs: "18446744073709551629", rhs: "6871947674", expecting: "18446744066837603955") + self.subTest(lhs: "18446744073709551629", rhs: "-6871947674", expecting: "18446744080581499303") + self.subTest(lhs: "18446744073709551629", rhs: "6012954215", expecting: "18446744067696597414") + self.subTest(lhs: "18446744073709551629", rhs: "-6012954215", expecting: "18446744079722505844") + self.subTest(lhs: "18446744073709551629", rhs: "5153960756", expecting: "18446744068555590873") + self.subTest(lhs: "18446744073709551629", rhs: "-5153960756", expecting: "18446744078863512385") + self.subTest(lhs: "18446744073709551629", rhs: "4294967297", expecting: "18446744069414584332") + self.subTest(lhs: "18446744073709551629", rhs: "-4294967297", expecting: "18446744078004518926") + self.subTest(lhs: "18446744073709551629", rhs: "3435973838", expecting: "18446744070273577791") + self.subTest(lhs: "18446744073709551629", rhs: "-3435973838", expecting: "18446744077145525467") + self.subTest(lhs: "18446744073709551629", rhs: "2576980379", expecting: "18446744071132571250") + self.subTest(lhs: "18446744073709551629", rhs: "-2576980379", expecting: "18446744076286532008") + self.subTest(lhs: "18446744073709551629", rhs: "1717986920", expecting: "18446744071991564709") + self.subTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "18446744075427538549") + self.subTest(lhs: "18446744073709551629", rhs: "858993461", expecting: "18446744072850558168") + self.subTest(lhs: "18446744073709551629", rhs: "-858993461", expecting: "18446744074568545090") + 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: "8589934592", expecting: "-18446744082299486221") + self.subTest(lhs: "-18446744073709551629", rhs: "-8589934592", expecting: "-18446744065119617037") + self.subTest(lhs: "-18446744073709551629", rhs: "7730941133", expecting: "-18446744081440492762") + self.subTest(lhs: "-18446744073709551629", rhs: "-7730941133", expecting: "-18446744065978610496") + self.subTest(lhs: "-18446744073709551629", rhs: "6871947674", expecting: "-18446744080581499303") + self.subTest(lhs: "-18446744073709551629", rhs: "-6871947674", expecting: "-18446744066837603955") + self.subTest(lhs: "-18446744073709551629", rhs: "6012954215", expecting: "-18446744079722505844") + self.subTest(lhs: "-18446744073709551629", rhs: "-6012954215", expecting: "-18446744067696597414") + self.subTest(lhs: "-18446744073709551629", rhs: "5153960756", expecting: "-18446744078863512385") + self.subTest(lhs: "-18446744073709551629", rhs: "-5153960756", expecting: "-18446744068555590873") + self.subTest(lhs: "-18446744073709551629", rhs: "4294967297", expecting: "-18446744078004518926") + self.subTest(lhs: "-18446744073709551629", rhs: "-4294967297", expecting: "-18446744069414584332") + self.subTest(lhs: "-18446744073709551629", rhs: "3435973838", expecting: "-18446744077145525467") + self.subTest(lhs: "-18446744073709551629", rhs: "-3435973838", expecting: "-18446744070273577791") + self.subTest(lhs: "-18446744073709551629", rhs: "2576980379", expecting: "-18446744076286532008") + self.subTest(lhs: "-18446744073709551629", rhs: "-2576980379", expecting: "-18446744071132571250") + self.subTest(lhs: "-18446744073709551629", rhs: "1717986920", expecting: "-18446744075427538549") + self.subTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "-18446744071991564709") + self.subTest(lhs: "-18446744073709551629", rhs: "858993461", expecting: "-18446744074568545090") + self.subTest(lhs: "-18446744073709551629", rhs: "-858993461", expecting: "-18446744072850558168") + 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: "8589934592", expecting: "340282366920938463703182280381402447874") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "340282366920938463703182280398582317058") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "7730941133", expecting: "340282366920938463703182280382261441333") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "340282366920938463703182280397723323599") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "6871947674", expecting: "340282366920938463703182280383120434792") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "340282366920938463703182280396864330140") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "6012954215", expecting: "340282366920938463703182280383979428251") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "340282366920938463703182280396005336681") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "5153960756", expecting: "340282366920938463703182280384838421710") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "340282366920938463703182280395146343222") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "4294967297", expecting: "340282366920938463703182280385697415169") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "340282366920938463703182280394287349763") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "3435973838", expecting: "340282366920938463703182280386556408628") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "340282366920938463703182280393428356304") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "2576980379", expecting: "340282366920938463703182280387415402087") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "340282366920938463703182280392569362845") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986920", expecting: "340282366920938463703182280388274395546") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "340282366920938463703182280391710369386") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "858993461", expecting: "340282366920938463703182280389133389005") + self.subTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993461", expecting: "340282366920938463703182280390851375927") + 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: "8589934592", expecting: "-340282366920938463703182280398582317058") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "-340282366920938463703182280381402447874") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "7730941133", expecting: "-340282366920938463703182280397723323599") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "-340282366920938463703182280382261441333") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "6871947674", expecting: "-340282366920938463703182280396864330140") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "-340282366920938463703182280383120434792") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "6012954215", expecting: "-340282366920938463703182280396005336681") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "-340282366920938463703182280383979428251") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "5153960756", expecting: "-340282366920938463703182280395146343222") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "-340282366920938463703182280384838421710") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "4294967297", expecting: "-340282366920938463703182280394287349763") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "-340282366920938463703182280385697415169") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "3435973838", expecting: "-340282366920938463703182280393428356304") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "-340282366920938463703182280386556408628") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "2576980379", expecting: "-340282366920938463703182280392569362845") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "-340282366920938463703182280387415402087") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986920", expecting: "-340282366920938463703182280391710369386") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-340282366920938463703182280388274395546") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993461", expecting: "-340282366920938463703182280390851375927") + self.subTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993461", expecting: "-340282366920938463703182280389133389005") + 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: "8589934592", expecting: "6277101735386680768599742560100804904349792275541975367697") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "6277101735386680768599742560100804904349792275559155236881") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "6277101735386680768599742560100804904349792275542834361156") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "6277101735386680768599742560100804904349792275558296243422") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "6277101735386680768599742560100804904349792275543693354615") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "6277101735386680768599742560100804904349792275557437249963") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "6277101735386680768599742560100804904349792275544552348074") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "6277101735386680768599742560100804904349792275556578256504") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "6277101735386680768599742560100804904349792275545411341533") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "6277101735386680768599742560100804904349792275555719263045") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "6277101735386680768599742560100804904349792275546270334992") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "6277101735386680768599742560100804904349792275554860269586") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "6277101735386680768599742560100804904349792275547129328451") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "6277101735386680768599742560100804904349792275554001276127") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "6277101735386680768599742560100804904349792275547988321910") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "6277101735386680768599742560100804904349792275553142282668") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "6277101735386680768599742560100804904349792275548847315369") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "6277101735386680768599742560100804904349792275552283289209") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "6277101735386680768599742560100804904349792275549706308828") + self.subTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "6277101735386680768599742560100804904349792275551424295750") + 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: "8589934592", expecting: "-6277101735386680768599742560100804904349792275559155236881") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "-6277101735386680768599742560100804904349792275541975367697") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "-6277101735386680768599742560100804904349792275558296243422") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "-6277101735386680768599742560100804904349792275542834361156") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "-6277101735386680768599742560100804904349792275557437249963") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "-6277101735386680768599742560100804904349792275543693354615") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "-6277101735386680768599742560100804904349792275556578256504") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "-6277101735386680768599742560100804904349792275544552348074") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "-6277101735386680768599742560100804904349792275555719263045") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "-6277101735386680768599742560100804904349792275545411341533") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "-6277101735386680768599742560100804904349792275554860269586") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "-6277101735386680768599742560100804904349792275546270334992") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "-6277101735386680768599742560100804904349792275554001276127") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "-6277101735386680768599742560100804904349792275547129328451") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "-6277101735386680768599742560100804904349792275553142282668") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "-6277101735386680768599742560100804904349792275547988321910") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "-6277101735386680768599742560100804904349792275552283289209") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-6277101735386680768599742560100804904349792275548847315369") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "-6277101735386680768599742560100804904349792275551424295750") + self.subTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "-6277101735386680768599742560100804904349792275549706308828") + 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: "8589934592", expecting: "18446744065119617043") + self.subTest(lhs: "18446744073709551635", rhs: "-8589934592", expecting: "18446744082299486227") + self.subTest(lhs: "18446744073709551635", rhs: "7730941133", expecting: "18446744065978610502") + self.subTest(lhs: "18446744073709551635", rhs: "-7730941133", expecting: "18446744081440492768") + self.subTest(lhs: "18446744073709551635", rhs: "6871947674", expecting: "18446744066837603961") + self.subTest(lhs: "18446744073709551635", rhs: "-6871947674", expecting: "18446744080581499309") + self.subTest(lhs: "18446744073709551635", rhs: "6012954215", expecting: "18446744067696597420") + self.subTest(lhs: "18446744073709551635", rhs: "-6012954215", expecting: "18446744079722505850") + self.subTest(lhs: "18446744073709551635", rhs: "5153960756", expecting: "18446744068555590879") + self.subTest(lhs: "18446744073709551635", rhs: "-5153960756", expecting: "18446744078863512391") + self.subTest(lhs: "18446744073709551635", rhs: "4294967297", expecting: "18446744069414584338") + self.subTest(lhs: "18446744073709551635", rhs: "-4294967297", expecting: "18446744078004518932") + self.subTest(lhs: "18446744073709551635", rhs: "3435973838", expecting: "18446744070273577797") + self.subTest(lhs: "18446744073709551635", rhs: "-3435973838", expecting: "18446744077145525473") + self.subTest(lhs: "18446744073709551635", rhs: "2576980379", expecting: "18446744071132571256") + self.subTest(lhs: "18446744073709551635", rhs: "-2576980379", expecting: "18446744076286532014") + self.subTest(lhs: "18446744073709551635", rhs: "1717986920", expecting: "18446744071991564715") + self.subTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "18446744075427538555") + self.subTest(lhs: "18446744073709551635", rhs: "858993461", expecting: "18446744072850558174") + self.subTest(lhs: "18446744073709551635", rhs: "-858993461", expecting: "18446744074568545096") + 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: "8589934592", expecting: "-18446744082299486227") + self.subTest(lhs: "-18446744073709551635", rhs: "-8589934592", expecting: "-18446744065119617043") + self.subTest(lhs: "-18446744073709551635", rhs: "7730941133", expecting: "-18446744081440492768") + self.subTest(lhs: "-18446744073709551635", rhs: "-7730941133", expecting: "-18446744065978610502") + self.subTest(lhs: "-18446744073709551635", rhs: "6871947674", expecting: "-18446744080581499309") + self.subTest(lhs: "-18446744073709551635", rhs: "-6871947674", expecting: "-18446744066837603961") + self.subTest(lhs: "-18446744073709551635", rhs: "6012954215", expecting: "-18446744079722505850") + self.subTest(lhs: "-18446744073709551635", rhs: "-6012954215", expecting: "-18446744067696597420") + self.subTest(lhs: "-18446744073709551635", rhs: "5153960756", expecting: "-18446744078863512391") + self.subTest(lhs: "-18446744073709551635", rhs: "-5153960756", expecting: "-18446744068555590879") + self.subTest(lhs: "-18446744073709551635", rhs: "4294967297", expecting: "-18446744078004518932") + self.subTest(lhs: "-18446744073709551635", rhs: "-4294967297", expecting: "-18446744069414584338") + self.subTest(lhs: "-18446744073709551635", rhs: "3435973838", expecting: "-18446744077145525473") + self.subTest(lhs: "-18446744073709551635", rhs: "-3435973838", expecting: "-18446744070273577797") + self.subTest(lhs: "-18446744073709551635", rhs: "2576980379", expecting: "-18446744076286532014") + self.subTest(lhs: "-18446744073709551635", rhs: "-2576980379", expecting: "-18446744071132571256") + self.subTest(lhs: "-18446744073709551635", rhs: "1717986920", expecting: "-18446744075427538555") + self.subTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "-18446744071991564715") + self.subTest(lhs: "-18446744073709551635", rhs: "858993461", expecting: "-18446744074568545096") + self.subTest(lhs: "-18446744073709551635", rhs: "-858993461", expecting: "-18446744072850558174") + } + + func test_sub_big_big() { + 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_int_int() { + 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: "8589934592", expecting: "0") + self.mulTest(lhs: "0", rhs: "-8589934592", expecting: "0") + self.mulTest(lhs: "0", rhs: "7730941133", expecting: "0") + self.mulTest(lhs: "0", rhs: "-7730941133", expecting: "0") + self.mulTest(lhs: "0", rhs: "6871947674", expecting: "0") + self.mulTest(lhs: "0", rhs: "-6871947674", expecting: "0") + self.mulTest(lhs: "0", rhs: "6012954215", expecting: "0") + self.mulTest(lhs: "0", rhs: "-6012954215", expecting: "0") + self.mulTest(lhs: "0", rhs: "5153960756", expecting: "0") + self.mulTest(lhs: "0", rhs: "-5153960756", expecting: "0") + self.mulTest(lhs: "0", rhs: "4294967297", expecting: "0") + self.mulTest(lhs: "0", rhs: "-4294967297", expecting: "0") + self.mulTest(lhs: "0", rhs: "3435973838", expecting: "0") + self.mulTest(lhs: "0", rhs: "-3435973838", expecting: "0") + self.mulTest(lhs: "0", rhs: "2576980379", expecting: "0") + self.mulTest(lhs: "0", rhs: "-2576980379", expecting: "0") + self.mulTest(lhs: "0", rhs: "1717986920", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.mulTest(lhs: "0", rhs: "858993461", expecting: "0") + self.mulTest(lhs: "0", rhs: "-858993461", 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: "8589934592", expecting: "8589934592") + self.mulTest(lhs: "1", rhs: "-8589934592", expecting: "-8589934592") + self.mulTest(lhs: "1", rhs: "7730941133", expecting: "7730941133") + self.mulTest(lhs: "1", rhs: "-7730941133", expecting: "-7730941133") + self.mulTest(lhs: "1", rhs: "6871947674", expecting: "6871947674") + self.mulTest(lhs: "1", rhs: "-6871947674", expecting: "-6871947674") + self.mulTest(lhs: "1", rhs: "6012954215", expecting: "6012954215") + self.mulTest(lhs: "1", rhs: "-6012954215", expecting: "-6012954215") + self.mulTest(lhs: "1", rhs: "5153960756", expecting: "5153960756") + self.mulTest(lhs: "1", rhs: "-5153960756", expecting: "-5153960756") + self.mulTest(lhs: "1", rhs: "4294967297", expecting: "4294967297") + self.mulTest(lhs: "1", rhs: "-4294967297", expecting: "-4294967297") + self.mulTest(lhs: "1", rhs: "3435973838", expecting: "3435973838") + self.mulTest(lhs: "1", rhs: "-3435973838", expecting: "-3435973838") + self.mulTest(lhs: "1", rhs: "2576980379", expecting: "2576980379") + self.mulTest(lhs: "1", rhs: "-2576980379", expecting: "-2576980379") + self.mulTest(lhs: "1", rhs: "1717986920", expecting: "1717986920") + self.mulTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986920") + self.mulTest(lhs: "1", rhs: "858993461", expecting: "858993461") + self.mulTest(lhs: "1", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "-8589934592") + self.mulTest(lhs: "-1", rhs: "-8589934592", expecting: "8589934592") + self.mulTest(lhs: "-1", rhs: "7730941133", expecting: "-7730941133") + self.mulTest(lhs: "-1", rhs: "-7730941133", expecting: "7730941133") + self.mulTest(lhs: "-1", rhs: "6871947674", expecting: "-6871947674") + self.mulTest(lhs: "-1", rhs: "-6871947674", expecting: "6871947674") + self.mulTest(lhs: "-1", rhs: "6012954215", expecting: "-6012954215") + self.mulTest(lhs: "-1", rhs: "-6012954215", expecting: "6012954215") + self.mulTest(lhs: "-1", rhs: "5153960756", expecting: "-5153960756") + self.mulTest(lhs: "-1", rhs: "-5153960756", expecting: "5153960756") + self.mulTest(lhs: "-1", rhs: "4294967297", expecting: "-4294967297") + self.mulTest(lhs: "-1", rhs: "-4294967297", expecting: "4294967297") + self.mulTest(lhs: "-1", rhs: "3435973838", expecting: "-3435973838") + self.mulTest(lhs: "-1", rhs: "-3435973838", expecting: "3435973838") + self.mulTest(lhs: "-1", rhs: "2576980379", expecting: "-2576980379") + self.mulTest(lhs: "-1", rhs: "-2576980379", expecting: "2576980379") + self.mulTest(lhs: "-1", rhs: "1717986920", expecting: "-1717986920") + self.mulTest(lhs: "-1", rhs: "-1717986920", expecting: "1717986920") + self.mulTest(lhs: "-1", rhs: "858993461", expecting: "-858993461") + self.mulTest(lhs: "-1", rhs: "-858993461", expecting: "858993461") + self.mulTest(lhs: "8589934592", rhs: "0", expecting: "0") + self.mulTest(lhs: "8589934592", rhs: "1", expecting: "8589934592") + self.mulTest(lhs: "8589934592", rhs: "-1", expecting: "-8589934592") + self.mulTest(lhs: "8589934592", rhs: "8589934592", expecting: "73786976294838206464") + self.mulTest(lhs: "8589934592", rhs: "-8589934592", expecting: "-73786976294838206464") + self.mulTest(lhs: "8589934592", rhs: "7730941133", expecting: "66408278667072372736") + self.mulTest(lhs: "8589934592", rhs: "-7730941133", expecting: "-66408278667072372736") + self.mulTest(lhs: "8589934592", rhs: "6871947674", expecting: "59029581039306539008") + self.mulTest(lhs: "8589934592", rhs: "-6871947674", expecting: "-59029581039306539008") + self.mulTest(lhs: "8589934592", rhs: "6012954215", expecting: "51650883411540705280") + self.mulTest(lhs: "8589934592", rhs: "-6012954215", expecting: "-51650883411540705280") + self.mulTest(lhs: "8589934592", rhs: "5153960756", expecting: "44272185783774871552") + self.mulTest(lhs: "8589934592", rhs: "-5153960756", expecting: "-44272185783774871552") + self.mulTest(lhs: "8589934592", rhs: "4294967297", expecting: "36893488156009037824") + self.mulTest(lhs: "8589934592", rhs: "-4294967297", expecting: "-36893488156009037824") + self.mulTest(lhs: "8589934592", rhs: "3435973838", expecting: "29514790528243204096") + self.mulTest(lhs: "8589934592", rhs: "-3435973838", expecting: "-29514790528243204096") + self.mulTest(lhs: "8589934592", rhs: "2576980379", expecting: "22136092900477370368") + self.mulTest(lhs: "8589934592", rhs: "-2576980379", expecting: "-22136092900477370368") + self.mulTest(lhs: "8589934592", rhs: "1717986920", expecting: "14757395272711536640") + self.mulTest(lhs: "8589934592", rhs: "-1717986920", expecting: "-14757395272711536640") + self.mulTest(lhs: "8589934592", rhs: "858993461", expecting: "7378697644945702912") + self.mulTest(lhs: "8589934592", rhs: "-858993461", expecting: "-7378697644945702912") + self.mulTest(lhs: "-8589934592", rhs: "0", expecting: "0") + self.mulTest(lhs: "-8589934592", rhs: "1", expecting: "-8589934592") + self.mulTest(lhs: "-8589934592", rhs: "-1", expecting: "8589934592") + self.mulTest(lhs: "-8589934592", rhs: "8589934592", expecting: "-73786976294838206464") + self.mulTest(lhs: "-8589934592", rhs: "-8589934592", expecting: "73786976294838206464") + self.mulTest(lhs: "-8589934592", rhs: "7730941133", expecting: "-66408278667072372736") + self.mulTest(lhs: "-8589934592", rhs: "-7730941133", expecting: "66408278667072372736") + self.mulTest(lhs: "-8589934592", rhs: "6871947674", expecting: "-59029581039306539008") + self.mulTest(lhs: "-8589934592", rhs: "-6871947674", expecting: "59029581039306539008") + self.mulTest(lhs: "-8589934592", rhs: "6012954215", expecting: "-51650883411540705280") + self.mulTest(lhs: "-8589934592", rhs: "-6012954215", expecting: "51650883411540705280") + self.mulTest(lhs: "-8589934592", rhs: "5153960756", expecting: "-44272185783774871552") + self.mulTest(lhs: "-8589934592", rhs: "-5153960756", expecting: "44272185783774871552") + self.mulTest(lhs: "-8589934592", rhs: "4294967297", expecting: "-36893488156009037824") + self.mulTest(lhs: "-8589934592", rhs: "-4294967297", expecting: "36893488156009037824") + self.mulTest(lhs: "-8589934592", rhs: "3435973838", expecting: "-29514790528243204096") + self.mulTest(lhs: "-8589934592", rhs: "-3435973838", expecting: "29514790528243204096") + self.mulTest(lhs: "-8589934592", rhs: "2576980379", expecting: "-22136092900477370368") + self.mulTest(lhs: "-8589934592", rhs: "-2576980379", expecting: "22136092900477370368") + self.mulTest(lhs: "-8589934592", rhs: "1717986920", expecting: "-14757395272711536640") + self.mulTest(lhs: "-8589934592", rhs: "-1717986920", expecting: "14757395272711536640") + self.mulTest(lhs: "-8589934592", rhs: "858993461", expecting: "-7378697644945702912") + self.mulTest(lhs: "-8589934592", rhs: "-858993461", expecting: "7378697644945702912") + self.mulTest(lhs: "7730941133", rhs: "0", expecting: "0") + self.mulTest(lhs: "7730941133", rhs: "1", expecting: "7730941133") + self.mulTest(lhs: "7730941133", rhs: "-1", expecting: "-7730941133") + self.mulTest(lhs: "7730941133", rhs: "8589934592", expecting: "66408278667072372736") + self.mulTest(lhs: "7730941133", rhs: "-8589934592", expecting: "-66408278667072372736") + self.mulTest(lhs: "7730941133", rhs: "7730941133", expecting: "59767450801911323689") + self.mulTest(lhs: "7730941133", rhs: "-7730941133", expecting: "-59767450801911323689") + self.mulTest(lhs: "7730941133", rhs: "6871947674", expecting: "53126622936750274642") + self.mulTest(lhs: "7730941133", rhs: "-6871947674", expecting: "-53126622936750274642") + self.mulTest(lhs: "7730941133", rhs: "6012954215", expecting: "46485795071589225595") + self.mulTest(lhs: "7730941133", rhs: "-6012954215", expecting: "-46485795071589225595") + self.mulTest(lhs: "7730941133", rhs: "5153960756", expecting: "39844967206428176548") + self.mulTest(lhs: "7730941133", rhs: "-5153960756", expecting: "-39844967206428176548") + self.mulTest(lhs: "7730941133", rhs: "4294967297", expecting: "33204139341267127501") + self.mulTest(lhs: "7730941133", rhs: "-4294967297", expecting: "-33204139341267127501") + self.mulTest(lhs: "7730941133", rhs: "3435973838", expecting: "26563311476106078454") + self.mulTest(lhs: "7730941133", rhs: "-3435973838", expecting: "-26563311476106078454") + self.mulTest(lhs: "7730941133", rhs: "2576980379", expecting: "19922483610945029407") + self.mulTest(lhs: "7730941133", rhs: "-2576980379", expecting: "-19922483610945029407") + self.mulTest(lhs: "7730941133", rhs: "1717986920", expecting: "13281655745783980360") + self.mulTest(lhs: "7730941133", rhs: "-1717986920", expecting: "-13281655745783980360") + self.mulTest(lhs: "7730941133", rhs: "858993461", expecting: "6640827880622931313") + self.mulTest(lhs: "7730941133", rhs: "-858993461", expecting: "-6640827880622931313") + self.mulTest(lhs: "-7730941133", rhs: "0", expecting: "0") + self.mulTest(lhs: "-7730941133", rhs: "1", expecting: "-7730941133") + self.mulTest(lhs: "-7730941133", rhs: "-1", expecting: "7730941133") + self.mulTest(lhs: "-7730941133", rhs: "8589934592", expecting: "-66408278667072372736") + self.mulTest(lhs: "-7730941133", rhs: "-8589934592", expecting: "66408278667072372736") + self.mulTest(lhs: "-7730941133", rhs: "7730941133", expecting: "-59767450801911323689") + self.mulTest(lhs: "-7730941133", rhs: "-7730941133", expecting: "59767450801911323689") + self.mulTest(lhs: "-7730941133", rhs: "6871947674", expecting: "-53126622936750274642") + self.mulTest(lhs: "-7730941133", rhs: "-6871947674", expecting: "53126622936750274642") + self.mulTest(lhs: "-7730941133", rhs: "6012954215", expecting: "-46485795071589225595") + self.mulTest(lhs: "-7730941133", rhs: "-6012954215", expecting: "46485795071589225595") + self.mulTest(lhs: "-7730941133", rhs: "5153960756", expecting: "-39844967206428176548") + self.mulTest(lhs: "-7730941133", rhs: "-5153960756", expecting: "39844967206428176548") + self.mulTest(lhs: "-7730941133", rhs: "4294967297", expecting: "-33204139341267127501") + self.mulTest(lhs: "-7730941133", rhs: "-4294967297", expecting: "33204139341267127501") + self.mulTest(lhs: "-7730941133", rhs: "3435973838", expecting: "-26563311476106078454") + self.mulTest(lhs: "-7730941133", rhs: "-3435973838", expecting: "26563311476106078454") + self.mulTest(lhs: "-7730941133", rhs: "2576980379", expecting: "-19922483610945029407") + self.mulTest(lhs: "-7730941133", rhs: "-2576980379", expecting: "19922483610945029407") + self.mulTest(lhs: "-7730941133", rhs: "1717986920", expecting: "-13281655745783980360") + self.mulTest(lhs: "-7730941133", rhs: "-1717986920", expecting: "13281655745783980360") + self.mulTest(lhs: "-7730941133", rhs: "858993461", expecting: "-6640827880622931313") + self.mulTest(lhs: "-7730941133", rhs: "-858993461", expecting: "6640827880622931313") + self.mulTest(lhs: "6871947674", rhs: "0", expecting: "0") + self.mulTest(lhs: "6871947674", rhs: "1", expecting: "6871947674") + self.mulTest(lhs: "6871947674", rhs: "-1", expecting: "-6871947674") + self.mulTest(lhs: "6871947674", rhs: "8589934592", expecting: "59029581039306539008") + self.mulTest(lhs: "6871947674", rhs: "-8589934592", expecting: "-59029581039306539008") + self.mulTest(lhs: "6871947674", rhs: "7730941133", expecting: "53126622936750274642") + self.mulTest(lhs: "6871947674", rhs: "-7730941133", expecting: "-53126622936750274642") + self.mulTest(lhs: "6871947674", rhs: "6871947674", expecting: "47223664834194010276") + self.mulTest(lhs: "6871947674", rhs: "-6871947674", expecting: "-47223664834194010276") + self.mulTest(lhs: "6871947674", rhs: "6012954215", expecting: "41320706731637745910") + self.mulTest(lhs: "6871947674", rhs: "-6012954215", expecting: "-41320706731637745910") + self.mulTest(lhs: "6871947674", rhs: "5153960756", expecting: "35417748629081481544") + self.mulTest(lhs: "6871947674", rhs: "-5153960756", expecting: "-35417748629081481544") + self.mulTest(lhs: "6871947674", rhs: "4294967297", expecting: "29514790526525217178") + self.mulTest(lhs: "6871947674", rhs: "-4294967297", expecting: "-29514790526525217178") + self.mulTest(lhs: "6871947674", rhs: "3435973838", expecting: "23611832423968952812") + self.mulTest(lhs: "6871947674", rhs: "-3435973838", expecting: "-23611832423968952812") + self.mulTest(lhs: "6871947674", rhs: "2576980379", expecting: "17708874321412688446") + self.mulTest(lhs: "6871947674", rhs: "-2576980379", expecting: "-17708874321412688446") + self.mulTest(lhs: "6871947674", rhs: "1717986920", expecting: "11805916218856424080") + self.mulTest(lhs: "6871947674", rhs: "-1717986920", expecting: "-11805916218856424080") + self.mulTest(lhs: "6871947674", rhs: "858993461", expecting: "5902958116300159714") + self.mulTest(lhs: "6871947674", rhs: "-858993461", expecting: "-5902958116300159714") + self.mulTest(lhs: "-6871947674", rhs: "0", expecting: "0") + self.mulTest(lhs: "-6871947674", rhs: "1", expecting: "-6871947674") + self.mulTest(lhs: "-6871947674", rhs: "-1", expecting: "6871947674") + self.mulTest(lhs: "-6871947674", rhs: "8589934592", expecting: "-59029581039306539008") + self.mulTest(lhs: "-6871947674", rhs: "-8589934592", expecting: "59029581039306539008") + self.mulTest(lhs: "-6871947674", rhs: "7730941133", expecting: "-53126622936750274642") + self.mulTest(lhs: "-6871947674", rhs: "-7730941133", expecting: "53126622936750274642") + self.mulTest(lhs: "-6871947674", rhs: "6871947674", expecting: "-47223664834194010276") + self.mulTest(lhs: "-6871947674", rhs: "-6871947674", expecting: "47223664834194010276") + self.mulTest(lhs: "-6871947674", rhs: "6012954215", expecting: "-41320706731637745910") + self.mulTest(lhs: "-6871947674", rhs: "-6012954215", expecting: "41320706731637745910") + self.mulTest(lhs: "-6871947674", rhs: "5153960756", expecting: "-35417748629081481544") + self.mulTest(lhs: "-6871947674", rhs: "-5153960756", expecting: "35417748629081481544") + self.mulTest(lhs: "-6871947674", rhs: "4294967297", expecting: "-29514790526525217178") + self.mulTest(lhs: "-6871947674", rhs: "-4294967297", expecting: "29514790526525217178") + self.mulTest(lhs: "-6871947674", rhs: "3435973838", expecting: "-23611832423968952812") + self.mulTest(lhs: "-6871947674", rhs: "-3435973838", expecting: "23611832423968952812") + self.mulTest(lhs: "-6871947674", rhs: "2576980379", expecting: "-17708874321412688446") + self.mulTest(lhs: "-6871947674", rhs: "-2576980379", expecting: "17708874321412688446") + self.mulTest(lhs: "-6871947674", rhs: "1717986920", expecting: "-11805916218856424080") + self.mulTest(lhs: "-6871947674", rhs: "-1717986920", expecting: "11805916218856424080") + self.mulTest(lhs: "-6871947674", rhs: "858993461", expecting: "-5902958116300159714") + self.mulTest(lhs: "-6871947674", rhs: "-858993461", expecting: "5902958116300159714") + self.mulTest(lhs: "6012954215", rhs: "0", expecting: "0") + self.mulTest(lhs: "6012954215", rhs: "1", expecting: "6012954215") + self.mulTest(lhs: "6012954215", rhs: "-1", expecting: "-6012954215") + self.mulTest(lhs: "6012954215", rhs: "8589934592", expecting: "51650883411540705280") + self.mulTest(lhs: "6012954215", rhs: "-8589934592", expecting: "-51650883411540705280") + self.mulTest(lhs: "6012954215", rhs: "7730941133", expecting: "46485795071589225595") + self.mulTest(lhs: "6012954215", rhs: "-7730941133", expecting: "-46485795071589225595") + self.mulTest(lhs: "6012954215", rhs: "6871947674", expecting: "41320706731637745910") + self.mulTest(lhs: "6012954215", rhs: "-6871947674", expecting: "-41320706731637745910") + self.mulTest(lhs: "6012954215", rhs: "6012954215", expecting: "36155618391686266225") + self.mulTest(lhs: "6012954215", rhs: "-6012954215", expecting: "-36155618391686266225") + self.mulTest(lhs: "6012954215", rhs: "5153960756", expecting: "30990530051734786540") + self.mulTest(lhs: "6012954215", rhs: "-5153960756", expecting: "-30990530051734786540") + self.mulTest(lhs: "6012954215", rhs: "4294967297", expecting: "25825441711783306855") + self.mulTest(lhs: "6012954215", rhs: "-4294967297", expecting: "-25825441711783306855") + self.mulTest(lhs: "6012954215", rhs: "3435973838", expecting: "20660353371831827170") + self.mulTest(lhs: "6012954215", rhs: "-3435973838", expecting: "-20660353371831827170") + self.mulTest(lhs: "6012954215", rhs: "2576980379", expecting: "15495265031880347485") + self.mulTest(lhs: "6012954215", rhs: "-2576980379", expecting: "-15495265031880347485") + self.mulTest(lhs: "6012954215", rhs: "1717986920", expecting: "10330176691928867800") + self.mulTest(lhs: "6012954215", rhs: "-1717986920", expecting: "-10330176691928867800") + self.mulTest(lhs: "6012954215", rhs: "858993461", expecting: "5165088351977388115") + self.mulTest(lhs: "6012954215", rhs: "-858993461", expecting: "-5165088351977388115") + self.mulTest(lhs: "-6012954215", rhs: "0", expecting: "0") + self.mulTest(lhs: "-6012954215", rhs: "1", expecting: "-6012954215") + self.mulTest(lhs: "-6012954215", rhs: "-1", expecting: "6012954215") + self.mulTest(lhs: "-6012954215", rhs: "8589934592", expecting: "-51650883411540705280") + self.mulTest(lhs: "-6012954215", rhs: "-8589934592", expecting: "51650883411540705280") + self.mulTest(lhs: "-6012954215", rhs: "7730941133", expecting: "-46485795071589225595") + self.mulTest(lhs: "-6012954215", rhs: "-7730941133", expecting: "46485795071589225595") + self.mulTest(lhs: "-6012954215", rhs: "6871947674", expecting: "-41320706731637745910") + self.mulTest(lhs: "-6012954215", rhs: "-6871947674", expecting: "41320706731637745910") + self.mulTest(lhs: "-6012954215", rhs: "6012954215", expecting: "-36155618391686266225") + self.mulTest(lhs: "-6012954215", rhs: "-6012954215", expecting: "36155618391686266225") + self.mulTest(lhs: "-6012954215", rhs: "5153960756", expecting: "-30990530051734786540") + self.mulTest(lhs: "-6012954215", rhs: "-5153960756", expecting: "30990530051734786540") + self.mulTest(lhs: "-6012954215", rhs: "4294967297", expecting: "-25825441711783306855") + self.mulTest(lhs: "-6012954215", rhs: "-4294967297", expecting: "25825441711783306855") + self.mulTest(lhs: "-6012954215", rhs: "3435973838", expecting: "-20660353371831827170") + self.mulTest(lhs: "-6012954215", rhs: "-3435973838", expecting: "20660353371831827170") + self.mulTest(lhs: "-6012954215", rhs: "2576980379", expecting: "-15495265031880347485") + self.mulTest(lhs: "-6012954215", rhs: "-2576980379", expecting: "15495265031880347485") + self.mulTest(lhs: "-6012954215", rhs: "1717986920", expecting: "-10330176691928867800") + self.mulTest(lhs: "-6012954215", rhs: "-1717986920", expecting: "10330176691928867800") + self.mulTest(lhs: "-6012954215", rhs: "858993461", expecting: "-5165088351977388115") + self.mulTest(lhs: "-6012954215", rhs: "-858993461", expecting: "5165088351977388115") + self.mulTest(lhs: "5153960756", rhs: "0", expecting: "0") + self.mulTest(lhs: "5153960756", rhs: "1", expecting: "5153960756") + self.mulTest(lhs: "5153960756", rhs: "-1", expecting: "-5153960756") + self.mulTest(lhs: "5153960756", rhs: "8589934592", expecting: "44272185783774871552") + self.mulTest(lhs: "5153960756", rhs: "-8589934592", expecting: "-44272185783774871552") + self.mulTest(lhs: "5153960756", rhs: "7730941133", expecting: "39844967206428176548") + self.mulTest(lhs: "5153960756", rhs: "-7730941133", expecting: "-39844967206428176548") + self.mulTest(lhs: "5153960756", rhs: "6871947674", expecting: "35417748629081481544") + self.mulTest(lhs: "5153960756", rhs: "-6871947674", expecting: "-35417748629081481544") + self.mulTest(lhs: "5153960756", rhs: "6012954215", expecting: "30990530051734786540") + self.mulTest(lhs: "5153960756", rhs: "-6012954215", expecting: "-30990530051734786540") + self.mulTest(lhs: "5153960756", rhs: "5153960756", expecting: "26563311474388091536") + self.mulTest(lhs: "5153960756", rhs: "-5153960756", expecting: "-26563311474388091536") + self.mulTest(lhs: "5153960756", rhs: "4294967297", expecting: "22136092897041396532") + self.mulTest(lhs: "5153960756", rhs: "-4294967297", expecting: "-22136092897041396532") + self.mulTest(lhs: "5153960756", rhs: "3435973838", expecting: "17708874319694701528") + self.mulTest(lhs: "5153960756", rhs: "-3435973838", expecting: "-17708874319694701528") + self.mulTest(lhs: "5153960756", rhs: "2576980379", expecting: "13281655742348006524") + self.mulTest(lhs: "5153960756", rhs: "-2576980379", expecting: "-13281655742348006524") + self.mulTest(lhs: "5153960756", rhs: "1717986920", expecting: "8854437165001311520") + self.mulTest(lhs: "5153960756", rhs: "-1717986920", expecting: "-8854437165001311520") + self.mulTest(lhs: "5153960756", rhs: "858993461", expecting: "4427218587654616516") + self.mulTest(lhs: "5153960756", rhs: "-858993461", expecting: "-4427218587654616516") + self.mulTest(lhs: "-5153960756", rhs: "0", expecting: "0") + self.mulTest(lhs: "-5153960756", rhs: "1", expecting: "-5153960756") + self.mulTest(lhs: "-5153960756", rhs: "-1", expecting: "5153960756") + self.mulTest(lhs: "-5153960756", rhs: "8589934592", expecting: "-44272185783774871552") + self.mulTest(lhs: "-5153960756", rhs: "-8589934592", expecting: "44272185783774871552") + self.mulTest(lhs: "-5153960756", rhs: "7730941133", expecting: "-39844967206428176548") + self.mulTest(lhs: "-5153960756", rhs: "-7730941133", expecting: "39844967206428176548") + self.mulTest(lhs: "-5153960756", rhs: "6871947674", expecting: "-35417748629081481544") + self.mulTest(lhs: "-5153960756", rhs: "-6871947674", expecting: "35417748629081481544") + self.mulTest(lhs: "-5153960756", rhs: "6012954215", expecting: "-30990530051734786540") + self.mulTest(lhs: "-5153960756", rhs: "-6012954215", expecting: "30990530051734786540") + self.mulTest(lhs: "-5153960756", rhs: "5153960756", expecting: "-26563311474388091536") + self.mulTest(lhs: "-5153960756", rhs: "-5153960756", expecting: "26563311474388091536") + self.mulTest(lhs: "-5153960756", rhs: "4294967297", expecting: "-22136092897041396532") + self.mulTest(lhs: "-5153960756", rhs: "-4294967297", expecting: "22136092897041396532") + self.mulTest(lhs: "-5153960756", rhs: "3435973838", expecting: "-17708874319694701528") + self.mulTest(lhs: "-5153960756", rhs: "-3435973838", expecting: "17708874319694701528") + self.mulTest(lhs: "-5153960756", rhs: "2576980379", expecting: "-13281655742348006524") + self.mulTest(lhs: "-5153960756", rhs: "-2576980379", expecting: "13281655742348006524") + self.mulTest(lhs: "-5153960756", rhs: "1717986920", expecting: "-8854437165001311520") + self.mulTest(lhs: "-5153960756", rhs: "-1717986920", expecting: "8854437165001311520") + self.mulTest(lhs: "-5153960756", rhs: "858993461", expecting: "-4427218587654616516") + self.mulTest(lhs: "-5153960756", rhs: "-858993461", expecting: "4427218587654616516") + self.mulTest(lhs: "4294967297", rhs: "0", expecting: "0") + self.mulTest(lhs: "4294967297", rhs: "1", expecting: "4294967297") + self.mulTest(lhs: "4294967297", rhs: "-1", expecting: "-4294967297") + self.mulTest(lhs: "4294967297", rhs: "8589934592", expecting: "36893488156009037824") + self.mulTest(lhs: "4294967297", rhs: "-8589934592", expecting: "-36893488156009037824") + self.mulTest(lhs: "4294967297", rhs: "7730941133", expecting: "33204139341267127501") + self.mulTest(lhs: "4294967297", rhs: "-7730941133", expecting: "-33204139341267127501") + self.mulTest(lhs: "4294967297", rhs: "6871947674", expecting: "29514790526525217178") + self.mulTest(lhs: "4294967297", rhs: "-6871947674", expecting: "-29514790526525217178") + self.mulTest(lhs: "4294967297", rhs: "6012954215", expecting: "25825441711783306855") + self.mulTest(lhs: "4294967297", rhs: "-6012954215", expecting: "-25825441711783306855") + self.mulTest(lhs: "4294967297", rhs: "5153960756", expecting: "22136092897041396532") + self.mulTest(lhs: "4294967297", rhs: "-5153960756", expecting: "-22136092897041396532") + self.mulTest(lhs: "4294967297", rhs: "4294967297", expecting: "18446744082299486209") + self.mulTest(lhs: "4294967297", rhs: "-4294967297", expecting: "-18446744082299486209") + self.mulTest(lhs: "4294967297", rhs: "3435973838", expecting: "14757395267557575886") + self.mulTest(lhs: "4294967297", rhs: "-3435973838", expecting: "-14757395267557575886") + self.mulTest(lhs: "4294967297", rhs: "2576980379", expecting: "11068046452815665563") + self.mulTest(lhs: "4294967297", rhs: "-2576980379", expecting: "-11068046452815665563") + self.mulTest(lhs: "4294967297", rhs: "1717986920", expecting: "7378697638073755240") + self.mulTest(lhs: "4294967297", rhs: "-1717986920", expecting: "-7378697638073755240") + self.mulTest(lhs: "4294967297", rhs: "858993461", expecting: "3689348823331844917") + self.mulTest(lhs: "4294967297", rhs: "-858993461", expecting: "-3689348823331844917") + self.mulTest(lhs: "-4294967297", rhs: "0", expecting: "0") + self.mulTest(lhs: "-4294967297", rhs: "1", expecting: "-4294967297") + self.mulTest(lhs: "-4294967297", rhs: "-1", expecting: "4294967297") + self.mulTest(lhs: "-4294967297", rhs: "8589934592", expecting: "-36893488156009037824") + self.mulTest(lhs: "-4294967297", rhs: "-8589934592", expecting: "36893488156009037824") + self.mulTest(lhs: "-4294967297", rhs: "7730941133", expecting: "-33204139341267127501") + self.mulTest(lhs: "-4294967297", rhs: "-7730941133", expecting: "33204139341267127501") + self.mulTest(lhs: "-4294967297", rhs: "6871947674", expecting: "-29514790526525217178") + self.mulTest(lhs: "-4294967297", rhs: "-6871947674", expecting: "29514790526525217178") + self.mulTest(lhs: "-4294967297", rhs: "6012954215", expecting: "-25825441711783306855") + self.mulTest(lhs: "-4294967297", rhs: "-6012954215", expecting: "25825441711783306855") + self.mulTest(lhs: "-4294967297", rhs: "5153960756", expecting: "-22136092897041396532") + self.mulTest(lhs: "-4294967297", rhs: "-5153960756", expecting: "22136092897041396532") + self.mulTest(lhs: "-4294967297", rhs: "4294967297", expecting: "-18446744082299486209") + self.mulTest(lhs: "-4294967297", rhs: "-4294967297", expecting: "18446744082299486209") + self.mulTest(lhs: "-4294967297", rhs: "3435973838", expecting: "-14757395267557575886") + self.mulTest(lhs: "-4294967297", rhs: "-3435973838", expecting: "14757395267557575886") + self.mulTest(lhs: "-4294967297", rhs: "2576980379", expecting: "-11068046452815665563") + self.mulTest(lhs: "-4294967297", rhs: "-2576980379", expecting: "11068046452815665563") + self.mulTest(lhs: "-4294967297", rhs: "1717986920", expecting: "-7378697638073755240") + self.mulTest(lhs: "-4294967297", rhs: "-1717986920", expecting: "7378697638073755240") + self.mulTest(lhs: "-4294967297", rhs: "858993461", expecting: "-3689348823331844917") + self.mulTest(lhs: "-4294967297", rhs: "-858993461", expecting: "3689348823331844917") + self.mulTest(lhs: "3435973838", rhs: "0", expecting: "0") + self.mulTest(lhs: "3435973838", rhs: "1", expecting: "3435973838") + self.mulTest(lhs: "3435973838", rhs: "-1", expecting: "-3435973838") + self.mulTest(lhs: "3435973838", rhs: "8589934592", expecting: "29514790528243204096") + self.mulTest(lhs: "3435973838", rhs: "-8589934592", expecting: "-29514790528243204096") + self.mulTest(lhs: "3435973838", rhs: "7730941133", expecting: "26563311476106078454") + self.mulTest(lhs: "3435973838", rhs: "-7730941133", expecting: "-26563311476106078454") + self.mulTest(lhs: "3435973838", rhs: "6871947674", expecting: "23611832423968952812") + self.mulTest(lhs: "3435973838", rhs: "-6871947674", expecting: "-23611832423968952812") + self.mulTest(lhs: "3435973838", rhs: "6012954215", expecting: "20660353371831827170") + self.mulTest(lhs: "3435973838", rhs: "-6012954215", expecting: "-20660353371831827170") + self.mulTest(lhs: "3435973838", rhs: "5153960756", expecting: "17708874319694701528") + self.mulTest(lhs: "3435973838", rhs: "-5153960756", expecting: "-17708874319694701528") + self.mulTest(lhs: "3435973838", rhs: "4294967297", expecting: "14757395267557575886") + self.mulTest(lhs: "3435973838", rhs: "-4294967297", expecting: "-14757395267557575886") + self.mulTest(lhs: "3435973838", rhs: "3435973838", expecting: "11805916215420450244") + self.mulTest(lhs: "3435973838", rhs: "-3435973838", expecting: "-11805916215420450244") + self.mulTest(lhs: "3435973838", rhs: "2576980379", expecting: "8854437163283324602") + self.mulTest(lhs: "3435973838", rhs: "-2576980379", expecting: "-8854437163283324602") + self.mulTest(lhs: "3435973838", rhs: "1717986920", expecting: "5902958111146198960") + self.mulTest(lhs: "3435973838", rhs: "-1717986920", expecting: "-5902958111146198960") + self.mulTest(lhs: "3435973838", rhs: "858993461", expecting: "2951479059009073318") + self.mulTest(lhs: "3435973838", rhs: "-858993461", expecting: "-2951479059009073318") + self.mulTest(lhs: "-3435973838", rhs: "0", expecting: "0") + self.mulTest(lhs: "-3435973838", rhs: "1", expecting: "-3435973838") + self.mulTest(lhs: "-3435973838", rhs: "-1", expecting: "3435973838") + self.mulTest(lhs: "-3435973838", rhs: "8589934592", expecting: "-29514790528243204096") + self.mulTest(lhs: "-3435973838", rhs: "-8589934592", expecting: "29514790528243204096") + self.mulTest(lhs: "-3435973838", rhs: "7730941133", expecting: "-26563311476106078454") + self.mulTest(lhs: "-3435973838", rhs: "-7730941133", expecting: "26563311476106078454") + self.mulTest(lhs: "-3435973838", rhs: "6871947674", expecting: "-23611832423968952812") + self.mulTest(lhs: "-3435973838", rhs: "-6871947674", expecting: "23611832423968952812") + self.mulTest(lhs: "-3435973838", rhs: "6012954215", expecting: "-20660353371831827170") + self.mulTest(lhs: "-3435973838", rhs: "-6012954215", expecting: "20660353371831827170") + self.mulTest(lhs: "-3435973838", rhs: "5153960756", expecting: "-17708874319694701528") + self.mulTest(lhs: "-3435973838", rhs: "-5153960756", expecting: "17708874319694701528") + self.mulTest(lhs: "-3435973838", rhs: "4294967297", expecting: "-14757395267557575886") + self.mulTest(lhs: "-3435973838", rhs: "-4294967297", expecting: "14757395267557575886") + self.mulTest(lhs: "-3435973838", rhs: "3435973838", expecting: "-11805916215420450244") + self.mulTest(lhs: "-3435973838", rhs: "-3435973838", expecting: "11805916215420450244") + self.mulTest(lhs: "-3435973838", rhs: "2576980379", expecting: "-8854437163283324602") + self.mulTest(lhs: "-3435973838", rhs: "-2576980379", expecting: "8854437163283324602") + self.mulTest(lhs: "-3435973838", rhs: "1717986920", expecting: "-5902958111146198960") + self.mulTest(lhs: "-3435973838", rhs: "-1717986920", expecting: "5902958111146198960") + self.mulTest(lhs: "-3435973838", rhs: "858993461", expecting: "-2951479059009073318") + self.mulTest(lhs: "-3435973838", rhs: "-858993461", expecting: "2951479059009073318") + self.mulTest(lhs: "2576980379", rhs: "0", expecting: "0") + self.mulTest(lhs: "2576980379", rhs: "1", expecting: "2576980379") + self.mulTest(lhs: "2576980379", rhs: "-1", expecting: "-2576980379") + self.mulTest(lhs: "2576980379", rhs: "8589934592", expecting: "22136092900477370368") + self.mulTest(lhs: "2576980379", rhs: "-8589934592", expecting: "-22136092900477370368") + self.mulTest(lhs: "2576980379", rhs: "7730941133", expecting: "19922483610945029407") + self.mulTest(lhs: "2576980379", rhs: "-7730941133", expecting: "-19922483610945029407") + self.mulTest(lhs: "2576980379", rhs: "6871947674", expecting: "17708874321412688446") + self.mulTest(lhs: "2576980379", rhs: "-6871947674", expecting: "-17708874321412688446") + self.mulTest(lhs: "2576980379", rhs: "6012954215", expecting: "15495265031880347485") + self.mulTest(lhs: "2576980379", rhs: "-6012954215", expecting: "-15495265031880347485") + self.mulTest(lhs: "2576980379", rhs: "5153960756", expecting: "13281655742348006524") + self.mulTest(lhs: "2576980379", rhs: "-5153960756", expecting: "-13281655742348006524") + self.mulTest(lhs: "2576980379", rhs: "4294967297", expecting: "11068046452815665563") + self.mulTest(lhs: "2576980379", rhs: "-4294967297", expecting: "-11068046452815665563") + self.mulTest(lhs: "2576980379", rhs: "3435973838", expecting: "8854437163283324602") + self.mulTest(lhs: "2576980379", rhs: "-3435973838", expecting: "-8854437163283324602") + self.mulTest(lhs: "2576980379", rhs: "2576980379", expecting: "6640827873750983641") + self.mulTest(lhs: "2576980379", rhs: "-2576980379", expecting: "-6640827873750983641") + self.mulTest(lhs: "2576980379", rhs: "1717986920", expecting: "4427218584218642680") + self.mulTest(lhs: "2576980379", rhs: "-1717986920", expecting: "-4427218584218642680") + self.mulTest(lhs: "2576980379", rhs: "858993461", expecting: "2213609294686301719") + self.mulTest(lhs: "2576980379", rhs: "-858993461", expecting: "-2213609294686301719") + self.mulTest(lhs: "-2576980379", rhs: "0", expecting: "0") + self.mulTest(lhs: "-2576980379", rhs: "1", expecting: "-2576980379") + self.mulTest(lhs: "-2576980379", rhs: "-1", expecting: "2576980379") + self.mulTest(lhs: "-2576980379", rhs: "8589934592", expecting: "-22136092900477370368") + self.mulTest(lhs: "-2576980379", rhs: "-8589934592", expecting: "22136092900477370368") + self.mulTest(lhs: "-2576980379", rhs: "7730941133", expecting: "-19922483610945029407") + self.mulTest(lhs: "-2576980379", rhs: "-7730941133", expecting: "19922483610945029407") + self.mulTest(lhs: "-2576980379", rhs: "6871947674", expecting: "-17708874321412688446") + self.mulTest(lhs: "-2576980379", rhs: "-6871947674", expecting: "17708874321412688446") + self.mulTest(lhs: "-2576980379", rhs: "6012954215", expecting: "-15495265031880347485") + self.mulTest(lhs: "-2576980379", rhs: "-6012954215", expecting: "15495265031880347485") + self.mulTest(lhs: "-2576980379", rhs: "5153960756", expecting: "-13281655742348006524") + self.mulTest(lhs: "-2576980379", rhs: "-5153960756", expecting: "13281655742348006524") + self.mulTest(lhs: "-2576980379", rhs: "4294967297", expecting: "-11068046452815665563") + self.mulTest(lhs: "-2576980379", rhs: "-4294967297", expecting: "11068046452815665563") + self.mulTest(lhs: "-2576980379", rhs: "3435973838", expecting: "-8854437163283324602") + self.mulTest(lhs: "-2576980379", rhs: "-3435973838", expecting: "8854437163283324602") + self.mulTest(lhs: "-2576980379", rhs: "2576980379", expecting: "-6640827873750983641") + self.mulTest(lhs: "-2576980379", rhs: "-2576980379", expecting: "6640827873750983641") + self.mulTest(lhs: "-2576980379", rhs: "1717986920", expecting: "-4427218584218642680") + self.mulTest(lhs: "-2576980379", rhs: "-1717986920", expecting: "4427218584218642680") + self.mulTest(lhs: "-2576980379", rhs: "858993461", expecting: "-2213609294686301719") + self.mulTest(lhs: "-2576980379", rhs: "-858993461", expecting: "2213609294686301719") + 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: "8589934592", expecting: "14757395272711536640") + self.mulTest(lhs: "1717986920", rhs: "-8589934592", expecting: "-14757395272711536640") + self.mulTest(lhs: "1717986920", rhs: "7730941133", expecting: "13281655745783980360") + self.mulTest(lhs: "1717986920", rhs: "-7730941133", expecting: "-13281655745783980360") + self.mulTest(lhs: "1717986920", rhs: "6871947674", expecting: "11805916218856424080") + self.mulTest(lhs: "1717986920", rhs: "-6871947674", expecting: "-11805916218856424080") + self.mulTest(lhs: "1717986920", rhs: "6012954215", expecting: "10330176691928867800") + self.mulTest(lhs: "1717986920", rhs: "-6012954215", expecting: "-10330176691928867800") + self.mulTest(lhs: "1717986920", rhs: "5153960756", expecting: "8854437165001311520") + self.mulTest(lhs: "1717986920", rhs: "-5153960756", expecting: "-8854437165001311520") + self.mulTest(lhs: "1717986920", rhs: "4294967297", expecting: "7378697638073755240") + self.mulTest(lhs: "1717986920", rhs: "-4294967297", expecting: "-7378697638073755240") + self.mulTest(lhs: "1717986920", rhs: "3435973838", expecting: "5902958111146198960") + self.mulTest(lhs: "1717986920", rhs: "-3435973838", expecting: "-5902958111146198960") + self.mulTest(lhs: "1717986920", rhs: "2576980379", expecting: "4427218584218642680") + self.mulTest(lhs: "1717986920", rhs: "-2576980379", expecting: "-4427218584218642680") + self.mulTest(lhs: "1717986920", rhs: "1717986920", expecting: "2951479057291086400") + self.mulTest(lhs: "1717986920", rhs: "-1717986920", expecting: "-2951479057291086400") + self.mulTest(lhs: "1717986920", rhs: "858993461", expecting: "1475739530363530120") + self.mulTest(lhs: "1717986920", rhs: "-858993461", expecting: "-1475739530363530120") + 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: "8589934592", expecting: "-14757395272711536640") + self.mulTest(lhs: "-1717986920", rhs: "-8589934592", expecting: "14757395272711536640") + self.mulTest(lhs: "-1717986920", rhs: "7730941133", expecting: "-13281655745783980360") + self.mulTest(lhs: "-1717986920", rhs: "-7730941133", expecting: "13281655745783980360") + self.mulTest(lhs: "-1717986920", rhs: "6871947674", expecting: "-11805916218856424080") + self.mulTest(lhs: "-1717986920", rhs: "-6871947674", expecting: "11805916218856424080") + self.mulTest(lhs: "-1717986920", rhs: "6012954215", expecting: "-10330176691928867800") + self.mulTest(lhs: "-1717986920", rhs: "-6012954215", expecting: "10330176691928867800") + self.mulTest(lhs: "-1717986920", rhs: "5153960756", expecting: "-8854437165001311520") + self.mulTest(lhs: "-1717986920", rhs: "-5153960756", expecting: "8854437165001311520") + self.mulTest(lhs: "-1717986920", rhs: "4294967297", expecting: "-7378697638073755240") + self.mulTest(lhs: "-1717986920", rhs: "-4294967297", expecting: "7378697638073755240") + self.mulTest(lhs: "-1717986920", rhs: "3435973838", expecting: "-5902958111146198960") + self.mulTest(lhs: "-1717986920", rhs: "-3435973838", expecting: "5902958111146198960") + self.mulTest(lhs: "-1717986920", rhs: "2576980379", expecting: "-4427218584218642680") + self.mulTest(lhs: "-1717986920", rhs: "-2576980379", expecting: "4427218584218642680") + self.mulTest(lhs: "-1717986920", rhs: "1717986920", expecting: "-2951479057291086400") + self.mulTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "2951479057291086400") + self.mulTest(lhs: "-1717986920", rhs: "858993461", expecting: "-1475739530363530120") + self.mulTest(lhs: "-1717986920", rhs: "-858993461", expecting: "1475739530363530120") + self.mulTest(lhs: "858993461", rhs: "0", expecting: "0") + self.mulTest(lhs: "858993461", rhs: "1", expecting: "858993461") + self.mulTest(lhs: "858993461", rhs: "-1", expecting: "-858993461") + self.mulTest(lhs: "858993461", rhs: "8589934592", expecting: "7378697644945702912") + self.mulTest(lhs: "858993461", rhs: "-8589934592", expecting: "-7378697644945702912") + self.mulTest(lhs: "858993461", rhs: "7730941133", expecting: "6640827880622931313") + self.mulTest(lhs: "858993461", rhs: "-7730941133", expecting: "-6640827880622931313") + self.mulTest(lhs: "858993461", rhs: "6871947674", expecting: "5902958116300159714") + self.mulTest(lhs: "858993461", rhs: "-6871947674", expecting: "-5902958116300159714") + self.mulTest(lhs: "858993461", rhs: "6012954215", expecting: "5165088351977388115") + self.mulTest(lhs: "858993461", rhs: "-6012954215", expecting: "-5165088351977388115") + self.mulTest(lhs: "858993461", rhs: "5153960756", expecting: "4427218587654616516") + self.mulTest(lhs: "858993461", rhs: "-5153960756", expecting: "-4427218587654616516") + self.mulTest(lhs: "858993461", rhs: "4294967297", expecting: "3689348823331844917") + self.mulTest(lhs: "858993461", rhs: "-4294967297", expecting: "-3689348823331844917") + self.mulTest(lhs: "858993461", rhs: "3435973838", expecting: "2951479059009073318") + self.mulTest(lhs: "858993461", rhs: "-3435973838", expecting: "-2951479059009073318") + self.mulTest(lhs: "858993461", rhs: "2576980379", expecting: "2213609294686301719") + self.mulTest(lhs: "858993461", rhs: "-2576980379", expecting: "-2213609294686301719") + self.mulTest(lhs: "858993461", rhs: "1717986920", expecting: "1475739530363530120") + self.mulTest(lhs: "858993461", rhs: "-1717986920", expecting: "-1475739530363530120") + self.mulTest(lhs: "858993461", rhs: "858993461", expecting: "737869766040758521") + self.mulTest(lhs: "858993461", rhs: "-858993461", expecting: "-737869766040758521") + self.mulTest(lhs: "-858993461", rhs: "0", expecting: "0") + self.mulTest(lhs: "-858993461", rhs: "1", expecting: "-858993461") + self.mulTest(lhs: "-858993461", rhs: "-1", expecting: "858993461") + self.mulTest(lhs: "-858993461", rhs: "8589934592", expecting: "-7378697644945702912") + self.mulTest(lhs: "-858993461", rhs: "-8589934592", expecting: "7378697644945702912") + self.mulTest(lhs: "-858993461", rhs: "7730941133", expecting: "-6640827880622931313") + self.mulTest(lhs: "-858993461", rhs: "-7730941133", expecting: "6640827880622931313") + self.mulTest(lhs: "-858993461", rhs: "6871947674", expecting: "-5902958116300159714") + self.mulTest(lhs: "-858993461", rhs: "-6871947674", expecting: "5902958116300159714") + self.mulTest(lhs: "-858993461", rhs: "6012954215", expecting: "-5165088351977388115") + self.mulTest(lhs: "-858993461", rhs: "-6012954215", expecting: "5165088351977388115") + self.mulTest(lhs: "-858993461", rhs: "5153960756", expecting: "-4427218587654616516") + self.mulTest(lhs: "-858993461", rhs: "-5153960756", expecting: "4427218587654616516") + self.mulTest(lhs: "-858993461", rhs: "4294967297", expecting: "-3689348823331844917") + self.mulTest(lhs: "-858993461", rhs: "-4294967297", expecting: "3689348823331844917") + self.mulTest(lhs: "-858993461", rhs: "3435973838", expecting: "-2951479059009073318") + self.mulTest(lhs: "-858993461", rhs: "-3435973838", expecting: "2951479059009073318") + self.mulTest(lhs: "-858993461", rhs: "2576980379", expecting: "-2213609294686301719") + self.mulTest(lhs: "-858993461", rhs: "-2576980379", expecting: "2213609294686301719") + self.mulTest(lhs: "-858993461", rhs: "1717986920", expecting: "-1475739530363530120") + self.mulTest(lhs: "-858993461", rhs: "-1717986920", expecting: "1475739530363530120") + self.mulTest(lhs: "-858993461", rhs: "858993461", expecting: "-737869766040758521") + self.mulTest(lhs: "-858993461", rhs: "-858993461", expecting: "737869766040758521") + } + + func test_mul_int_big() { + 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: "8589934592", rhs: "0", expecting: "0") + self.mulTest(lhs: "8589934592", rhs: "1", expecting: "8589934592") + self.mulTest(lhs: "8589934592", rhs: "-1", expecting: "-8589934592") + self.mulTest(lhs: "8589934592", rhs: "18446744073709551615", expecting: "158456325028528675178497966080") + self.mulTest(lhs: "8589934592", rhs: "-18446744073709551615", expecting: "-158456325028528675178497966080") + self.mulTest(lhs: "8589934592", rhs: "18446744073709551617", expecting: "158456325028528675195677835264") + self.mulTest(lhs: "8589934592", rhs: "-18446744073709551617", expecting: "-158456325028528675195677835264") + self.mulTest(lhs: "8589934592", rhs: "340282366920938463481821351505477763074", expecting: "2923003274661805836565825990461094714516132855808") + self.mulTest(lhs: "8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "-2923003274661805836565825990461094714516132855808") + self.mulTest(lhs: "8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "53919893334301279595180036723362873019930571850917748365686812442624") + self.mulTest(lhs: "8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-53919893334301279595180036723362873019930571850917748365686812442624") + self.mulTest(lhs: "8589934592", rhs: "18446744073709551623", expecting: "158456325028528675247217442816") + self.mulTest(lhs: "8589934592", rhs: "-18446744073709551623", expecting: "-158456325028528675247217442816") + self.mulTest(lhs: "8589934592", rhs: "340282366920938463592501815947735072770", expecting: "2923003274661805837516563940632266765638660259840") + self.mulTest(lhs: "8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "-2923003274661805837516563940632266765638660259840") + self.mulTest(lhs: "8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "53919893334301279612718056371333708037424051893341972550487015161856") + self.mulTest(lhs: "8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-53919893334301279612718056371333708037424051893341972550487015161856") + self.mulTest(lhs: "8589934592", rhs: "18446744073709551629", expecting: "158456325028528675298757050368") + self.mulTest(lhs: "8589934592", rhs: "-18446744073709551629", expecting: "-158456325028528675298757050368") + self.mulTest(lhs: "8589934592", rhs: "340282366920938463703182280389992382466", expecting: "2923003274661805838467301890803438816761187663872") + self.mulTest(lhs: "8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "-2923003274661805838467301890803438816761187663872") + self.mulTest(lhs: "8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "53919893334301279630256076019304543054917531935766196735287217881088") + self.mulTest(lhs: "8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-53919893334301279630256076019304543054917531935766196735287217881088") + self.mulTest(lhs: "8589934592", rhs: "18446744073709551635", expecting: "158456325028528675350296657920") + self.mulTest(lhs: "8589934592", rhs: "-18446744073709551635", expecting: "-158456325028528675350296657920") + self.mulTest(lhs: "-8589934592", rhs: "0", expecting: "0") + self.mulTest(lhs: "-8589934592", rhs: "1", expecting: "-8589934592") + self.mulTest(lhs: "-8589934592", rhs: "-1", expecting: "8589934592") + self.mulTest(lhs: "-8589934592", rhs: "18446744073709551615", expecting: "-158456325028528675178497966080") + self.mulTest(lhs: "-8589934592", rhs: "-18446744073709551615", expecting: "158456325028528675178497966080") + self.mulTest(lhs: "-8589934592", rhs: "18446744073709551617", expecting: "-158456325028528675195677835264") + self.mulTest(lhs: "-8589934592", rhs: "-18446744073709551617", expecting: "158456325028528675195677835264") + self.mulTest(lhs: "-8589934592", rhs: "340282366920938463481821351505477763074", expecting: "-2923003274661805836565825990461094714516132855808") + self.mulTest(lhs: "-8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "2923003274661805836565825990461094714516132855808") + self.mulTest(lhs: "-8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-53919893334301279595180036723362873019930571850917748365686812442624") + self.mulTest(lhs: "-8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "53919893334301279595180036723362873019930571850917748365686812442624") + self.mulTest(lhs: "-8589934592", rhs: "18446744073709551623", expecting: "-158456325028528675247217442816") + self.mulTest(lhs: "-8589934592", rhs: "-18446744073709551623", expecting: "158456325028528675247217442816") + self.mulTest(lhs: "-8589934592", rhs: "340282366920938463592501815947735072770", expecting: "-2923003274661805837516563940632266765638660259840") + self.mulTest(lhs: "-8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "2923003274661805837516563940632266765638660259840") + self.mulTest(lhs: "-8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-53919893334301279612718056371333708037424051893341972550487015161856") + self.mulTest(lhs: "-8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "53919893334301279612718056371333708037424051893341972550487015161856") + self.mulTest(lhs: "-8589934592", rhs: "18446744073709551629", expecting: "-158456325028528675298757050368") + self.mulTest(lhs: "-8589934592", rhs: "-18446744073709551629", expecting: "158456325028528675298757050368") + self.mulTest(lhs: "-8589934592", rhs: "340282366920938463703182280389992382466", expecting: "-2923003274661805838467301890803438816761187663872") + self.mulTest(lhs: "-8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "2923003274661805838467301890803438816761187663872") + self.mulTest(lhs: "-8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-53919893334301279630256076019304543054917531935766196735287217881088") + self.mulTest(lhs: "-8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "53919893334301279630256076019304543054917531935766196735287217881088") + self.mulTest(lhs: "-8589934592", rhs: "18446744073709551635", expecting: "-158456325028528675350296657920") + self.mulTest(lhs: "-8589934592", rhs: "-18446744073709551635", expecting: "158456325028528675350296657920") + self.mulTest(lhs: "7730941133", rhs: "0", expecting: "0") + self.mulTest(lhs: "7730941133", rhs: "1", expecting: "7730941133") + self.mulTest(lhs: "7730941133", rhs: "-1", expecting: "-7730941133") + self.mulTest(lhs: "7730941133", rhs: "18446744073709551615", expecting: "142610692529365156475390079795") + self.mulTest(lhs: "7730941133", rhs: "-18446744073709551615", expecting: "-142610692529365156475390079795") + self.mulTest(lhs: "7730941133", rhs: "18446744073709551617", expecting: "142610692529365156490851962061") + self.mulTest(lhs: "7730941133", rhs: "-18446744073709551617", expecting: "-142610692529365156490851962061") + self.mulTest(lhs: "7730941133", rhs: "340282366920938463481821351505477763074", expecting: "2630702947263681726293431084111349513365615122842") + self.mulTest(lhs: "7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "-2630702947263681726293431084111349513365615122842") + self.mulTest(lhs: "7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "48527904002126571982739369203929856549347423334428105112168903475201") + self.mulTest(lhs: "7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-48527904002126571982739369203929856549347423334428105112168903475201") + self.mulTest(lhs: "7730941133", rhs: "18446744073709551623", expecting: "142610692529365156537237608859") + self.mulTest(lhs: "7730941133", rhs: "-18446744073709551623", expecting: "-142610692529365156537237608859") + self.mulTest(lhs: "7730941133", rhs: "340282366920938463592501815947735072770", expecting: "2630702947263681727149095239287540452264341248410") + self.mulTest(lhs: "7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "-2630702947263681727149095239287540452264341248410") + self.mulTest(lhs: "7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "48527904002126571998523586887511946905396681528743820314518756314319") + self.mulTest(lhs: "7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-48527904002126571998523586887511946905396681528743820314518756314319") + self.mulTest(lhs: "7730941133", rhs: "18446744073709551629", expecting: "142610692529365156583623255657") + self.mulTest(lhs: "7730941133", rhs: "-18446744073709551629", expecting: "-142610692529365156583623255657") + self.mulTest(lhs: "7730941133", rhs: "340282366920938463703182280389992382466", expecting: "2630702947263681728004759394463731391163067373978") + self.mulTest(lhs: "7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "-2630702947263681728004759394463731391163067373978") + self.mulTest(lhs: "7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "48527904002126572014307804571094037261445939723059535516868609153437") + self.mulTest(lhs: "7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-48527904002126572014307804571094037261445939723059535516868609153437") + self.mulTest(lhs: "7730941133", rhs: "18446744073709551635", expecting: "142610692529365156630008902455") + self.mulTest(lhs: "7730941133", rhs: "-18446744073709551635", expecting: "-142610692529365156630008902455") + self.mulTest(lhs: "-7730941133", rhs: "0", expecting: "0") + self.mulTest(lhs: "-7730941133", rhs: "1", expecting: "-7730941133") + self.mulTest(lhs: "-7730941133", rhs: "-1", expecting: "7730941133") + self.mulTest(lhs: "-7730941133", rhs: "18446744073709551615", expecting: "-142610692529365156475390079795") + self.mulTest(lhs: "-7730941133", rhs: "-18446744073709551615", expecting: "142610692529365156475390079795") + self.mulTest(lhs: "-7730941133", rhs: "18446744073709551617", expecting: "-142610692529365156490851962061") + self.mulTest(lhs: "-7730941133", rhs: "-18446744073709551617", expecting: "142610692529365156490851962061") + self.mulTest(lhs: "-7730941133", rhs: "340282366920938463481821351505477763074", expecting: "-2630702947263681726293431084111349513365615122842") + self.mulTest(lhs: "-7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "2630702947263681726293431084111349513365615122842") + self.mulTest(lhs: "-7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-48527904002126571982739369203929856549347423334428105112168903475201") + self.mulTest(lhs: "-7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "48527904002126571982739369203929856549347423334428105112168903475201") + self.mulTest(lhs: "-7730941133", rhs: "18446744073709551623", expecting: "-142610692529365156537237608859") + self.mulTest(lhs: "-7730941133", rhs: "-18446744073709551623", expecting: "142610692529365156537237608859") + self.mulTest(lhs: "-7730941133", rhs: "340282366920938463592501815947735072770", expecting: "-2630702947263681727149095239287540452264341248410") + self.mulTest(lhs: "-7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "2630702947263681727149095239287540452264341248410") + self.mulTest(lhs: "-7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-48527904002126571998523586887511946905396681528743820314518756314319") + self.mulTest(lhs: "-7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "48527904002126571998523586887511946905396681528743820314518756314319") + self.mulTest(lhs: "-7730941133", rhs: "18446744073709551629", expecting: "-142610692529365156583623255657") + self.mulTest(lhs: "-7730941133", rhs: "-18446744073709551629", expecting: "142610692529365156583623255657") + self.mulTest(lhs: "-7730941133", rhs: "340282366920938463703182280389992382466", expecting: "-2630702947263681728004759394463731391163067373978") + self.mulTest(lhs: "-7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "2630702947263681728004759394463731391163067373978") + self.mulTest(lhs: "-7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-48527904002126572014307804571094037261445939723059535516868609153437") + self.mulTest(lhs: "-7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "48527904002126572014307804571094037261445939723059535516868609153437") + self.mulTest(lhs: "-7730941133", rhs: "18446744073709551635", expecting: "-142610692529365156630008902455") + self.mulTest(lhs: "-7730941133", rhs: "-18446744073709551635", expecting: "142610692529365156630008902455") + self.mulTest(lhs: "6871947674", rhs: "0", expecting: "0") + self.mulTest(lhs: "6871947674", rhs: "1", expecting: "6871947674") + self.mulTest(lhs: "6871947674", rhs: "-1", expecting: "-6871947674") + self.mulTest(lhs: "6871947674", rhs: "18446744073709551615", expecting: "126765060030201637772282193510") + self.mulTest(lhs: "6871947674", rhs: "-18446744073709551615", expecting: "-126765060030201637772282193510") + self.mulTest(lhs: "6871947674", rhs: "18446744073709551617", expecting: "126765060030201637786026088858") + self.mulTest(lhs: "6871947674", rhs: "-18446744073709551617", expecting: "-126765060030201637786026088858") + self.mulTest(lhs: "6871947674", rhs: "340282366920938463481821351505477763074", expecting: "2338402619865557616021036177761604312215097389876") + self.mulTest(lhs: "6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "-2338402619865557616021036177761604312215097389876") + self.mulTest(lhs: "6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "43135914669951864370298701684496840078764274817938461858650994507778") + self.mulTest(lhs: "6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-43135914669951864370298701684496840078764274817938461858650994507778") + self.mulTest(lhs: "6871947674", rhs: "18446744073709551623", expecting: "126765060030201637827257774902") + self.mulTest(lhs: "6871947674", rhs: "-18446744073709551623", expecting: "-126765060030201637827257774902") + self.mulTest(lhs: "6871947674", rhs: "340282366920938463592501815947735072770", expecting: "2338402619865557616781626537942814138890022236980") + self.mulTest(lhs: "6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "-2338402619865557616781626537942814138890022236980") + self.mulTest(lhs: "6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "43135914669951864384329117403690185773369311164145668078550497466782") + self.mulTest(lhs: "6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-43135914669951864384329117403690185773369311164145668078550497466782") + self.mulTest(lhs: "6871947674", rhs: "18446744073709551629", expecting: "126765060030201637868489460946") + self.mulTest(lhs: "6871947674", rhs: "-18446744073709551629", expecting: "-126765060030201637868489460946") + self.mulTest(lhs: "6871947674", rhs: "340282366920938463703182280389992382466", expecting: "2338402619865557617542216898124023965564947084084") + self.mulTest(lhs: "6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "-2338402619865557617542216898124023965564947084084") + self.mulTest(lhs: "6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "43135914669951864398359533122883531467974347510352874298450000425786") + self.mulTest(lhs: "6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-43135914669951864398359533122883531467974347510352874298450000425786") + self.mulTest(lhs: "6871947674", rhs: "18446744073709551635", expecting: "126765060030201637909721146990") + self.mulTest(lhs: "6871947674", rhs: "-18446744073709551635", expecting: "-126765060030201637909721146990") + self.mulTest(lhs: "-6871947674", rhs: "0", expecting: "0") + self.mulTest(lhs: "-6871947674", rhs: "1", expecting: "-6871947674") + self.mulTest(lhs: "-6871947674", rhs: "-1", expecting: "6871947674") + self.mulTest(lhs: "-6871947674", rhs: "18446744073709551615", expecting: "-126765060030201637772282193510") + self.mulTest(lhs: "-6871947674", rhs: "-18446744073709551615", expecting: "126765060030201637772282193510") + self.mulTest(lhs: "-6871947674", rhs: "18446744073709551617", expecting: "-126765060030201637786026088858") + self.mulTest(lhs: "-6871947674", rhs: "-18446744073709551617", expecting: "126765060030201637786026088858") + self.mulTest(lhs: "-6871947674", rhs: "340282366920938463481821351505477763074", expecting: "-2338402619865557616021036177761604312215097389876") + self.mulTest(lhs: "-6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "2338402619865557616021036177761604312215097389876") + self.mulTest(lhs: "-6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-43135914669951864370298701684496840078764274817938461858650994507778") + self.mulTest(lhs: "-6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "43135914669951864370298701684496840078764274817938461858650994507778") + self.mulTest(lhs: "-6871947674", rhs: "18446744073709551623", expecting: "-126765060030201637827257774902") + self.mulTest(lhs: "-6871947674", rhs: "-18446744073709551623", expecting: "126765060030201637827257774902") + self.mulTest(lhs: "-6871947674", rhs: "340282366920938463592501815947735072770", expecting: "-2338402619865557616781626537942814138890022236980") + self.mulTest(lhs: "-6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "2338402619865557616781626537942814138890022236980") + self.mulTest(lhs: "-6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-43135914669951864384329117403690185773369311164145668078550497466782") + self.mulTest(lhs: "-6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "43135914669951864384329117403690185773369311164145668078550497466782") + self.mulTest(lhs: "-6871947674", rhs: "18446744073709551629", expecting: "-126765060030201637868489460946") + self.mulTest(lhs: "-6871947674", rhs: "-18446744073709551629", expecting: "126765060030201637868489460946") + self.mulTest(lhs: "-6871947674", rhs: "340282366920938463703182280389992382466", expecting: "-2338402619865557617542216898124023965564947084084") + self.mulTest(lhs: "-6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "2338402619865557617542216898124023965564947084084") + self.mulTest(lhs: "-6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-43135914669951864398359533122883531467974347510352874298450000425786") + self.mulTest(lhs: "-6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "43135914669951864398359533122883531467974347510352874298450000425786") + self.mulTest(lhs: "-6871947674", rhs: "18446744073709551635", expecting: "-126765060030201637909721146990") + self.mulTest(lhs: "-6871947674", rhs: "-18446744073709551635", expecting: "126765060030201637909721146990") + self.mulTest(lhs: "6012954215", rhs: "0", expecting: "0") + self.mulTest(lhs: "6012954215", rhs: "1", expecting: "6012954215") + self.mulTest(lhs: "6012954215", rhs: "-1", expecting: "-6012954215") + self.mulTest(lhs: "6012954215", rhs: "18446744073709551615", expecting: "110919427531038119069174307225") + self.mulTest(lhs: "6012954215", rhs: "-18446744073709551615", expecting: "-110919427531038119069174307225") + self.mulTest(lhs: "6012954215", rhs: "18446744073709551617", expecting: "110919427531038119081200215655") + self.mulTest(lhs: "6012954215", rhs: "-18446744073709551617", expecting: "-110919427531038119081200215655") + self.mulTest(lhs: "6012954215", rhs: "340282366920938463481821351505477763074", expecting: "2046102292467433505748641271411859111064579656910") + self.mulTest(lhs: "6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "-2046102292467433505748641271411859111064579656910") + self.mulTest(lhs: "6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "37743925337777156757858034165063823608181126301448818605133085540355") + self.mulTest(lhs: "6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-37743925337777156757858034165063823608181126301448818605133085540355") + self.mulTest(lhs: "6012954215", rhs: "18446744073709551623", expecting: "110919427531038119117277940945") + self.mulTest(lhs: "6012954215", rhs: "-18446744073709551623", expecting: "-110919427531038119117277940945") + self.mulTest(lhs: "6012954215", rhs: "340282366920938463592501815947735072770", expecting: "2046102292467433506414157836598087825515703225550") + self.mulTest(lhs: "6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "-2046102292467433506414157836598087825515703225550") + self.mulTest(lhs: "6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "37743925337777156770134647919868424641341940799547515842582238619245") + self.mulTest(lhs: "6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-37743925337777156770134647919868424641341940799547515842582238619245") + self.mulTest(lhs: "6012954215", rhs: "18446744073709551629", expecting: "110919427531038119153355666235") + self.mulTest(lhs: "6012954215", rhs: "-18446744073709551629", expecting: "-110919427531038119153355666235") + self.mulTest(lhs: "6012954215", rhs: "340282366920938463703182280389992382466", expecting: "2046102292467433507079674401784316539966826794190") + self.mulTest(lhs: "6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "-2046102292467433507079674401784316539966826794190") + self.mulTest(lhs: "6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "37743925337777156782411261674673025674502755297646213080031391698135") + self.mulTest(lhs: "6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-37743925337777156782411261674673025674502755297646213080031391698135") + self.mulTest(lhs: "6012954215", rhs: "18446744073709551635", expecting: "110919427531038119189433391525") + self.mulTest(lhs: "6012954215", rhs: "-18446744073709551635", expecting: "-110919427531038119189433391525") + self.mulTest(lhs: "-6012954215", rhs: "0", expecting: "0") + self.mulTest(lhs: "-6012954215", rhs: "1", expecting: "-6012954215") + self.mulTest(lhs: "-6012954215", rhs: "-1", expecting: "6012954215") + self.mulTest(lhs: "-6012954215", rhs: "18446744073709551615", expecting: "-110919427531038119069174307225") + self.mulTest(lhs: "-6012954215", rhs: "-18446744073709551615", expecting: "110919427531038119069174307225") + self.mulTest(lhs: "-6012954215", rhs: "18446744073709551617", expecting: "-110919427531038119081200215655") + self.mulTest(lhs: "-6012954215", rhs: "-18446744073709551617", expecting: "110919427531038119081200215655") + self.mulTest(lhs: "-6012954215", rhs: "340282366920938463481821351505477763074", expecting: "-2046102292467433505748641271411859111064579656910") + self.mulTest(lhs: "-6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "2046102292467433505748641271411859111064579656910") + self.mulTest(lhs: "-6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-37743925337777156757858034165063823608181126301448818605133085540355") + self.mulTest(lhs: "-6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "37743925337777156757858034165063823608181126301448818605133085540355") + self.mulTest(lhs: "-6012954215", rhs: "18446744073709551623", expecting: "-110919427531038119117277940945") + self.mulTest(lhs: "-6012954215", rhs: "-18446744073709551623", expecting: "110919427531038119117277940945") + self.mulTest(lhs: "-6012954215", rhs: "340282366920938463592501815947735072770", expecting: "-2046102292467433506414157836598087825515703225550") + self.mulTest(lhs: "-6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "2046102292467433506414157836598087825515703225550") + self.mulTest(lhs: "-6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-37743925337777156770134647919868424641341940799547515842582238619245") + self.mulTest(lhs: "-6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "37743925337777156770134647919868424641341940799547515842582238619245") + self.mulTest(lhs: "-6012954215", rhs: "18446744073709551629", expecting: "-110919427531038119153355666235") + self.mulTest(lhs: "-6012954215", rhs: "-18446744073709551629", expecting: "110919427531038119153355666235") + self.mulTest(lhs: "-6012954215", rhs: "340282366920938463703182280389992382466", expecting: "-2046102292467433507079674401784316539966826794190") + self.mulTest(lhs: "-6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "2046102292467433507079674401784316539966826794190") + self.mulTest(lhs: "-6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-37743925337777156782411261674673025674502755297646213080031391698135") + self.mulTest(lhs: "-6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "37743925337777156782411261674673025674502755297646213080031391698135") + self.mulTest(lhs: "-6012954215", rhs: "18446744073709551635", expecting: "-110919427531038119189433391525") + self.mulTest(lhs: "-6012954215", rhs: "-18446744073709551635", expecting: "110919427531038119189433391525") + self.mulTest(lhs: "5153960756", rhs: "0", expecting: "0") + self.mulTest(lhs: "5153960756", rhs: "1", expecting: "5153960756") + self.mulTest(lhs: "5153960756", rhs: "-1", expecting: "-5153960756") + self.mulTest(lhs: "5153960756", rhs: "18446744073709551615", expecting: "95073795031874600366066420940") + self.mulTest(lhs: "5153960756", rhs: "-18446744073709551615", expecting: "-95073795031874600366066420940") + self.mulTest(lhs: "5153960756", rhs: "18446744073709551617", expecting: "95073795031874600376374342452") + self.mulTest(lhs: "5153960756", rhs: "-18446744073709551617", expecting: "-95073795031874600376374342452") + self.mulTest(lhs: "5153960756", rhs: "340282366920938463481821351505477763074", expecting: "1753801965069309395476246365062113909914061923944") + self.mulTest(lhs: "5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "-1753801965069309395476246365062113909914061923944") + self.mulTest(lhs: "5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "32351936005602449145417366645630807137597977784959175351615176572932") + self.mulTest(lhs: "5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-32351936005602449145417366645630807137597977784959175351615176572932") + self.mulTest(lhs: "5153960756", rhs: "18446744073709551623", expecting: "95073795031874600407298106988") + self.mulTest(lhs: "5153960756", rhs: "-18446744073709551623", expecting: "-95073795031874600407298106988") + self.mulTest(lhs: "5153960756", rhs: "340282366920938463592501815947735072770", expecting: "1753801965069309396046689135253361512141384214120") + self.mulTest(lhs: "5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "-1753801965069309396046689135253361512141384214120") + self.mulTest(lhs: "5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "32351936005602449155940178436046663509314570434949363606613979771708") + self.mulTest(lhs: "5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-32351936005602449155940178436046663509314570434949363606613979771708") + self.mulTest(lhs: "5153960756", rhs: "18446744073709551629", expecting: "95073795031874600438221871524") + self.mulTest(lhs: "5153960756", rhs: "-18446744073709551629", expecting: "-95073795031874600438221871524") + self.mulTest(lhs: "5153960756", rhs: "340282366920938463703182280389992382466", expecting: "1753801965069309396617131905444609114368706504296") + self.mulTest(lhs: "5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "-1753801965069309396617131905444609114368706504296") + self.mulTest(lhs: "5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "32351936005602449166462990226462519881031163084939551861612782970484") + self.mulTest(lhs: "5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-32351936005602449166462990226462519881031163084939551861612782970484") + self.mulTest(lhs: "5153960756", rhs: "18446744073709551635", expecting: "95073795031874600469145636060") + self.mulTest(lhs: "5153960756", rhs: "-18446744073709551635", expecting: "-95073795031874600469145636060") + self.mulTest(lhs: "-5153960756", rhs: "0", expecting: "0") + self.mulTest(lhs: "-5153960756", rhs: "1", expecting: "-5153960756") + self.mulTest(lhs: "-5153960756", rhs: "-1", expecting: "5153960756") + self.mulTest(lhs: "-5153960756", rhs: "18446744073709551615", expecting: "-95073795031874600366066420940") + self.mulTest(lhs: "-5153960756", rhs: "-18446744073709551615", expecting: "95073795031874600366066420940") + self.mulTest(lhs: "-5153960756", rhs: "18446744073709551617", expecting: "-95073795031874600376374342452") + self.mulTest(lhs: "-5153960756", rhs: "-18446744073709551617", expecting: "95073795031874600376374342452") + self.mulTest(lhs: "-5153960756", rhs: "340282366920938463481821351505477763074", expecting: "-1753801965069309395476246365062113909914061923944") + self.mulTest(lhs: "-5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "1753801965069309395476246365062113909914061923944") + self.mulTest(lhs: "-5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-32351936005602449145417366645630807137597977784959175351615176572932") + self.mulTest(lhs: "-5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "32351936005602449145417366645630807137597977784959175351615176572932") + self.mulTest(lhs: "-5153960756", rhs: "18446744073709551623", expecting: "-95073795031874600407298106988") + self.mulTest(lhs: "-5153960756", rhs: "-18446744073709551623", expecting: "95073795031874600407298106988") + self.mulTest(lhs: "-5153960756", rhs: "340282366920938463592501815947735072770", expecting: "-1753801965069309396046689135253361512141384214120") + self.mulTest(lhs: "-5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "1753801965069309396046689135253361512141384214120") + self.mulTest(lhs: "-5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-32351936005602449155940178436046663509314570434949363606613979771708") + self.mulTest(lhs: "-5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "32351936005602449155940178436046663509314570434949363606613979771708") + self.mulTest(lhs: "-5153960756", rhs: "18446744073709551629", expecting: "-95073795031874600438221871524") + self.mulTest(lhs: "-5153960756", rhs: "-18446744073709551629", expecting: "95073795031874600438221871524") + self.mulTest(lhs: "-5153960756", rhs: "340282366920938463703182280389992382466", expecting: "-1753801965069309396617131905444609114368706504296") + self.mulTest(lhs: "-5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "1753801965069309396617131905444609114368706504296") + self.mulTest(lhs: "-5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-32351936005602449166462990226462519881031163084939551861612782970484") + self.mulTest(lhs: "-5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "32351936005602449166462990226462519881031163084939551861612782970484") + self.mulTest(lhs: "-5153960756", rhs: "18446744073709551635", expecting: "-95073795031874600469145636060") + self.mulTest(lhs: "-5153960756", rhs: "-18446744073709551635", expecting: "95073795031874600469145636060") + self.mulTest(lhs: "4294967297", rhs: "0", expecting: "0") + self.mulTest(lhs: "4294967297", rhs: "1", expecting: "4294967297") + self.mulTest(lhs: "4294967297", rhs: "-1", expecting: "-4294967297") + self.mulTest(lhs: "4294967297", rhs: "18446744073709551615", expecting: "79228162532711081662958534655") + self.mulTest(lhs: "4294967297", rhs: "-18446744073709551615", expecting: "-79228162532711081662958534655") + self.mulTest(lhs: "4294967297", rhs: "18446744073709551617", expecting: "79228162532711081671548469249") + self.mulTest(lhs: "4294967297", rhs: "-18446744073709551617", expecting: "-79228162532711081671548469249") + self.mulTest(lhs: "4294967297", rhs: "340282366920938463481821351505477763074", expecting: "1461501637671185285203851458712368708763544190978") + self.mulTest(lhs: "4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "-1461501637671185285203851458712368708763544190978") + self.mulTest(lhs: "4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "26959946673427741532976699126197790667014829268469532098097267605509") + self.mulTest(lhs: "4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-26959946673427741532976699126197790667014829268469532098097267605509") + self.mulTest(lhs: "4294967297", rhs: "18446744073709551623", expecting: "79228162532711081697318273031") + self.mulTest(lhs: "4294967297", rhs: "-18446744073709551623", expecting: "-79228162532711081697318273031") + self.mulTest(lhs: "4294967297", rhs: "340282366920938463592501815947735072770", expecting: "1461501637671185285679220433908635198767065202690") + self.mulTest(lhs: "4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "-1461501637671185285679220433908635198767065202690") + self.mulTest(lhs: "4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "26959946673427741541745708952224902377287200070351211370645720924171") + self.mulTest(lhs: "4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-26959946673427741541745708952224902377287200070351211370645720924171") + self.mulTest(lhs: "4294967297", rhs: "18446744073709551629", expecting: "79228162532711081723088076813") + self.mulTest(lhs: "4294967297", rhs: "-18446744073709551629", expecting: "-79228162532711081723088076813") + self.mulTest(lhs: "4294967297", rhs: "340282366920938463703182280389992382466", expecting: "1461501637671185286154589409104901688770586214402") + self.mulTest(lhs: "4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "-1461501637671185286154589409104901688770586214402") + self.mulTest(lhs: "4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "26959946673427741550514718778252014087559570872232890643194174242833") + self.mulTest(lhs: "4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-26959946673427741550514718778252014087559570872232890643194174242833") + self.mulTest(lhs: "4294967297", rhs: "18446744073709551635", expecting: "79228162532711081748857880595") + self.mulTest(lhs: "4294967297", rhs: "-18446744073709551635", expecting: "-79228162532711081748857880595") + self.mulTest(lhs: "-4294967297", rhs: "0", expecting: "0") + self.mulTest(lhs: "-4294967297", rhs: "1", expecting: "-4294967297") + self.mulTest(lhs: "-4294967297", rhs: "-1", expecting: "4294967297") + self.mulTest(lhs: "-4294967297", rhs: "18446744073709551615", expecting: "-79228162532711081662958534655") + self.mulTest(lhs: "-4294967297", rhs: "-18446744073709551615", expecting: "79228162532711081662958534655") + self.mulTest(lhs: "-4294967297", rhs: "18446744073709551617", expecting: "-79228162532711081671548469249") + self.mulTest(lhs: "-4294967297", rhs: "-18446744073709551617", expecting: "79228162532711081671548469249") + self.mulTest(lhs: "-4294967297", rhs: "340282366920938463481821351505477763074", expecting: "-1461501637671185285203851458712368708763544190978") + self.mulTest(lhs: "-4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "1461501637671185285203851458712368708763544190978") + self.mulTest(lhs: "-4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-26959946673427741532976699126197790667014829268469532098097267605509") + self.mulTest(lhs: "-4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "26959946673427741532976699126197790667014829268469532098097267605509") + self.mulTest(lhs: "-4294967297", rhs: "18446744073709551623", expecting: "-79228162532711081697318273031") + self.mulTest(lhs: "-4294967297", rhs: "-18446744073709551623", expecting: "79228162532711081697318273031") + self.mulTest(lhs: "-4294967297", rhs: "340282366920938463592501815947735072770", expecting: "-1461501637671185285679220433908635198767065202690") + self.mulTest(lhs: "-4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "1461501637671185285679220433908635198767065202690") + self.mulTest(lhs: "-4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-26959946673427741541745708952224902377287200070351211370645720924171") + self.mulTest(lhs: "-4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "26959946673427741541745708952224902377287200070351211370645720924171") + self.mulTest(lhs: "-4294967297", rhs: "18446744073709551629", expecting: "-79228162532711081723088076813") + self.mulTest(lhs: "-4294967297", rhs: "-18446744073709551629", expecting: "79228162532711081723088076813") + self.mulTest(lhs: "-4294967297", rhs: "340282366920938463703182280389992382466", expecting: "-1461501637671185286154589409104901688770586214402") + self.mulTest(lhs: "-4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "1461501637671185286154589409104901688770586214402") + self.mulTest(lhs: "-4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-26959946673427741550514718778252014087559570872232890643194174242833") + self.mulTest(lhs: "-4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "26959946673427741550514718778252014087559570872232890643194174242833") + self.mulTest(lhs: "-4294967297", rhs: "18446744073709551635", expecting: "-79228162532711081748857880595") + self.mulTest(lhs: "-4294967297", rhs: "-18446744073709551635", expecting: "79228162532711081748857880595") + self.mulTest(lhs: "3435973838", rhs: "0", expecting: "0") + self.mulTest(lhs: "3435973838", rhs: "1", expecting: "3435973838") + self.mulTest(lhs: "3435973838", rhs: "-1", expecting: "-3435973838") + self.mulTest(lhs: "3435973838", rhs: "18446744073709551615", expecting: "63382530033547562959850648370") + self.mulTest(lhs: "3435973838", rhs: "-18446744073709551615", expecting: "-63382530033547562959850648370") + self.mulTest(lhs: "3435973838", rhs: "18446744073709551617", expecting: "63382530033547562966722596046") + self.mulTest(lhs: "3435973838", rhs: "-18446744073709551617", expecting: "-63382530033547562966722596046") + self.mulTest(lhs: "3435973838", rhs: "340282366920938463481821351505477763074", expecting: "1169201310273061174931456552362623507613026458012") + self.mulTest(lhs: "3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "-1169201310273061174931456552362623507613026458012") + self.mulTest(lhs: "3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "21567957341253033920536031606764774196431680751979888844579358638086") + self.mulTest(lhs: "3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-21567957341253033920536031606764774196431680751979888844579358638086") + self.mulTest(lhs: "3435973838", rhs: "18446744073709551623", expecting: "63382530033547562987338439074") + self.mulTest(lhs: "3435973838", rhs: "-18446744073709551623", expecting: "-63382530033547562987338439074") + self.mulTest(lhs: "3435973838", rhs: "340282366920938463592501815947735072770", expecting: "1169201310273061175311751732563908885392746191260") + self.mulTest(lhs: "3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "-1169201310273061175311751732563908885392746191260") + self.mulTest(lhs: "3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "21567957341253033927551239468403141245259829705753059134677462076634") + self.mulTest(lhs: "3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-21567957341253033927551239468403141245259829705753059134677462076634") + self.mulTest(lhs: "3435973838", rhs: "18446744073709551629", expecting: "63382530033547563007954282102") + self.mulTest(lhs: "3435973838", rhs: "-18446744073709551629", expecting: "-63382530033547563007954282102") + self.mulTest(lhs: "3435973838", rhs: "340282366920938463703182280389992382466", expecting: "1169201310273061175692046912765194263172465924508") + self.mulTest(lhs: "3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "-1169201310273061175692046912765194263172465924508") + self.mulTest(lhs: "3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "21567957341253033934566447330041508294087978659526229424775565515182") + self.mulTest(lhs: "3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-21567957341253033934566447330041508294087978659526229424775565515182") + self.mulTest(lhs: "3435973838", rhs: "18446744073709551635", expecting: "63382530033547563028570125130") + self.mulTest(lhs: "3435973838", rhs: "-18446744073709551635", expecting: "-63382530033547563028570125130") + self.mulTest(lhs: "-3435973838", rhs: "0", expecting: "0") + self.mulTest(lhs: "-3435973838", rhs: "1", expecting: "-3435973838") + self.mulTest(lhs: "-3435973838", rhs: "-1", expecting: "3435973838") + self.mulTest(lhs: "-3435973838", rhs: "18446744073709551615", expecting: "-63382530033547562959850648370") + self.mulTest(lhs: "-3435973838", rhs: "-18446744073709551615", expecting: "63382530033547562959850648370") + self.mulTest(lhs: "-3435973838", rhs: "18446744073709551617", expecting: "-63382530033547562966722596046") + self.mulTest(lhs: "-3435973838", rhs: "-18446744073709551617", expecting: "63382530033547562966722596046") + self.mulTest(lhs: "-3435973838", rhs: "340282366920938463481821351505477763074", expecting: "-1169201310273061174931456552362623507613026458012") + self.mulTest(lhs: "-3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "1169201310273061174931456552362623507613026458012") + self.mulTest(lhs: "-3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-21567957341253033920536031606764774196431680751979888844579358638086") + self.mulTest(lhs: "-3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "21567957341253033920536031606764774196431680751979888844579358638086") + self.mulTest(lhs: "-3435973838", rhs: "18446744073709551623", expecting: "-63382530033547562987338439074") + self.mulTest(lhs: "-3435973838", rhs: "-18446744073709551623", expecting: "63382530033547562987338439074") + self.mulTest(lhs: "-3435973838", rhs: "340282366920938463592501815947735072770", expecting: "-1169201310273061175311751732563908885392746191260") + self.mulTest(lhs: "-3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "1169201310273061175311751732563908885392746191260") + self.mulTest(lhs: "-3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-21567957341253033927551239468403141245259829705753059134677462076634") + self.mulTest(lhs: "-3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "21567957341253033927551239468403141245259829705753059134677462076634") + self.mulTest(lhs: "-3435973838", rhs: "18446744073709551629", expecting: "-63382530033547563007954282102") + self.mulTest(lhs: "-3435973838", rhs: "-18446744073709551629", expecting: "63382530033547563007954282102") + self.mulTest(lhs: "-3435973838", rhs: "340282366920938463703182280389992382466", expecting: "-1169201310273061175692046912765194263172465924508") + self.mulTest(lhs: "-3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "1169201310273061175692046912765194263172465924508") + self.mulTest(lhs: "-3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-21567957341253033934566447330041508294087978659526229424775565515182") + self.mulTest(lhs: "-3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "21567957341253033934566447330041508294087978659526229424775565515182") + self.mulTest(lhs: "-3435973838", rhs: "18446744073709551635", expecting: "-63382530033547563028570125130") + self.mulTest(lhs: "-3435973838", rhs: "-18446744073709551635", expecting: "63382530033547563028570125130") + self.mulTest(lhs: "2576980379", rhs: "0", expecting: "0") + self.mulTest(lhs: "2576980379", rhs: "1", expecting: "2576980379") + self.mulTest(lhs: "2576980379", rhs: "-1", expecting: "-2576980379") + self.mulTest(lhs: "2576980379", rhs: "18446744073709551615", expecting: "47536897534384044256742762085") + self.mulTest(lhs: "2576980379", rhs: "-18446744073709551615", expecting: "-47536897534384044256742762085") + self.mulTest(lhs: "2576980379", rhs: "18446744073709551617", expecting: "47536897534384044261896722843") + self.mulTest(lhs: "2576980379", rhs: "-18446744073709551617", expecting: "-47536897534384044261896722843") + self.mulTest(lhs: "2576980379", rhs: "340282366920938463481821351505477763074", expecting: "876900982874937064659061646012878306462508725046") + self.mulTest(lhs: "2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "-876900982874937064659061646012878306462508725046") + self.mulTest(lhs: "2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "16175968009078326308095364087331757725848532235490245591061449670663") + self.mulTest(lhs: "2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-16175968009078326308095364087331757725848532235490245591061449670663") + self.mulTest(lhs: "2576980379", rhs: "18446744073709551623", expecting: "47536897534384044277358605117") + self.mulTest(lhs: "2576980379", rhs: "-18446744073709551623", expecting: "-47536897534384044277358605117") + self.mulTest(lhs: "2576980379", rhs: "340282366920938463592501815947735072770", expecting: "876900982874937064944283031219182572018427179830") + self.mulTest(lhs: "2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "-876900982874937064944283031219182572018427179830") + self.mulTest(lhs: "2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "16175968009078326313356769984581380113232459341154906898709203229097") + self.mulTest(lhs: "2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-16175968009078326313356769984581380113232459341154906898709203229097") + self.mulTest(lhs: "2576980379", rhs: "18446744073709551629", expecting: "47536897534384044292820487391") + self.mulTest(lhs: "2576980379", rhs: "-18446744073709551629", expecting: "-47536897534384044292820487391") + self.mulTest(lhs: "2576980379", rhs: "340282366920938463703182280389992382466", expecting: "876900982874937065229504416425486837574345634614") + self.mulTest(lhs: "2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "-876900982874937065229504416425486837574345634614") + self.mulTest(lhs: "2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "16175968009078326318618175881831002500616386446819568206356956787531") + self.mulTest(lhs: "2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-16175968009078326318618175881831002500616386446819568206356956787531") + self.mulTest(lhs: "2576980379", rhs: "18446744073709551635", expecting: "47536897534384044308282369665") + self.mulTest(lhs: "2576980379", rhs: "-18446744073709551635", expecting: "-47536897534384044308282369665") + self.mulTest(lhs: "-2576980379", rhs: "0", expecting: "0") + self.mulTest(lhs: "-2576980379", rhs: "1", expecting: "-2576980379") + self.mulTest(lhs: "-2576980379", rhs: "-1", expecting: "2576980379") + self.mulTest(lhs: "-2576980379", rhs: "18446744073709551615", expecting: "-47536897534384044256742762085") + self.mulTest(lhs: "-2576980379", rhs: "-18446744073709551615", expecting: "47536897534384044256742762085") + self.mulTest(lhs: "-2576980379", rhs: "18446744073709551617", expecting: "-47536897534384044261896722843") + self.mulTest(lhs: "-2576980379", rhs: "-18446744073709551617", expecting: "47536897534384044261896722843") + self.mulTest(lhs: "-2576980379", rhs: "340282366920938463481821351505477763074", expecting: "-876900982874937064659061646012878306462508725046") + self.mulTest(lhs: "-2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "876900982874937064659061646012878306462508725046") + self.mulTest(lhs: "-2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-16175968009078326308095364087331757725848532235490245591061449670663") + self.mulTest(lhs: "-2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "16175968009078326308095364087331757725848532235490245591061449670663") + self.mulTest(lhs: "-2576980379", rhs: "18446744073709551623", expecting: "-47536897534384044277358605117") + self.mulTest(lhs: "-2576980379", rhs: "-18446744073709551623", expecting: "47536897534384044277358605117") + self.mulTest(lhs: "-2576980379", rhs: "340282366920938463592501815947735072770", expecting: "-876900982874937064944283031219182572018427179830") + self.mulTest(lhs: "-2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "876900982874937064944283031219182572018427179830") + self.mulTest(lhs: "-2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-16175968009078326313356769984581380113232459341154906898709203229097") + self.mulTest(lhs: "-2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "16175968009078326313356769984581380113232459341154906898709203229097") + self.mulTest(lhs: "-2576980379", rhs: "18446744073709551629", expecting: "-47536897534384044292820487391") + self.mulTest(lhs: "-2576980379", rhs: "-18446744073709551629", expecting: "47536897534384044292820487391") + self.mulTest(lhs: "-2576980379", rhs: "340282366920938463703182280389992382466", expecting: "-876900982874937065229504416425486837574345634614") + self.mulTest(lhs: "-2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "876900982874937065229504416425486837574345634614") + self.mulTest(lhs: "-2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-16175968009078326318618175881831002500616386446819568206356956787531") + self.mulTest(lhs: "-2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "16175968009078326318618175881831002500616386446819568206356956787531") + self.mulTest(lhs: "-2576980379", rhs: "18446744073709551635", expecting: "-47536897534384044308282369665") + self.mulTest(lhs: "-2576980379", rhs: "-18446744073709551635", expecting: "47536897534384044308282369665") + 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: "-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: "858993461", rhs: "0", expecting: "0") + self.mulTest(lhs: "858993461", rhs: "1", expecting: "858993461") + self.mulTest(lhs: "858993461", rhs: "-1", expecting: "-858993461") + self.mulTest(lhs: "858993461", rhs: "18446744073709551615", expecting: "15845632536057006850526989515") + self.mulTest(lhs: "858993461", rhs: "-18446744073709551615", expecting: "-15845632536057006850526989515") + self.mulTest(lhs: "858993461", rhs: "18446744073709551617", expecting: "15845632536057006852244976437") + self.mulTest(lhs: "858993461", rhs: "-18446744073709551617", expecting: "-15845632536057006852244976437") + self.mulTest(lhs: "858993461", rhs: "340282366920938463481821351505477763074", expecting: "292300328078688844114271833313387904161473259114") + self.mulTest(lhs: "858993461", rhs: "-340282366920938463481821351505477763074", expecting: "-292300328078688844114271833313387904161473259114") + self.mulTest(lhs: "858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "5391989344728911083214029048465724784682235202510959084025631735817") + self.mulTest(lhs: "858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5391989344728911083214029048465724784682235202510959084025631735817") + self.mulTest(lhs: "858993461", rhs: "18446744073709551623", expecting: "15845632536057006857398937203") + self.mulTest(lhs: "858993461", rhs: "-18446744073709551623", expecting: "-15845632536057006857398937203") + self.mulTest(lhs: "858993461", rhs: "340282366920938463592501815947735072770", expecting: "292300328078688844209345628529729945269789156970") + self.mulTest(lhs: "858993461", rhs: "-340282366920938463592501815947735072770", expecting: "-292300328078688844209345628529729945269789156970") + self.mulTest(lhs: "858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "5391989344728911084967831016937857849177718611958602426772685534023") + self.mulTest(lhs: "858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-5391989344728911084967831016937857849177718611958602426772685534023") + self.mulTest(lhs: "858993461", rhs: "18446744073709551629", expecting: "15845632536057006862552897969") + self.mulTest(lhs: "858993461", rhs: "-18446744073709551629", expecting: "-15845632536057006862552897969") + self.mulTest(lhs: "858993461", rhs: "340282366920938463703182280389992382466", expecting: "292300328078688844304419423746071986378105054826") + self.mulTest(lhs: "858993461", rhs: "-340282366920938463703182280389992382466", expecting: "-292300328078688844304419423746071986378105054826") + self.mulTest(lhs: "858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "5391989344728911086721632985409990913673202021406245769519739332229") + self.mulTest(lhs: "858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-5391989344728911086721632985409990913673202021406245769519739332229") + self.mulTest(lhs: "858993461", rhs: "18446744073709551635", expecting: "15845632536057006867706858735") + self.mulTest(lhs: "858993461", rhs: "-18446744073709551635", expecting: "-15845632536057006867706858735") + self.mulTest(lhs: "-858993461", rhs: "0", expecting: "0") + self.mulTest(lhs: "-858993461", rhs: "1", expecting: "-858993461") + self.mulTest(lhs: "-858993461", rhs: "-1", expecting: "858993461") + self.mulTest(lhs: "-858993461", rhs: "18446744073709551615", expecting: "-15845632536057006850526989515") + self.mulTest(lhs: "-858993461", rhs: "-18446744073709551615", expecting: "15845632536057006850526989515") + self.mulTest(lhs: "-858993461", rhs: "18446744073709551617", expecting: "-15845632536057006852244976437") + self.mulTest(lhs: "-858993461", rhs: "-18446744073709551617", expecting: "15845632536057006852244976437") + self.mulTest(lhs: "-858993461", rhs: "340282366920938463481821351505477763074", expecting: "-292300328078688844114271833313387904161473259114") + self.mulTest(lhs: "-858993461", rhs: "-340282366920938463481821351505477763074", expecting: "292300328078688844114271833313387904161473259114") + self.mulTest(lhs: "-858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-5391989344728911083214029048465724784682235202510959084025631735817") + self.mulTest(lhs: "-858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "5391989344728911083214029048465724784682235202510959084025631735817") + self.mulTest(lhs: "-858993461", rhs: "18446744073709551623", expecting: "-15845632536057006857398937203") + self.mulTest(lhs: "-858993461", rhs: "-18446744073709551623", expecting: "15845632536057006857398937203") + self.mulTest(lhs: "-858993461", rhs: "340282366920938463592501815947735072770", expecting: "-292300328078688844209345628529729945269789156970") + self.mulTest(lhs: "-858993461", rhs: "-340282366920938463592501815947735072770", expecting: "292300328078688844209345628529729945269789156970") + self.mulTest(lhs: "-858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-5391989344728911084967831016937857849177718611958602426772685534023") + self.mulTest(lhs: "-858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "5391989344728911084967831016937857849177718611958602426772685534023") + self.mulTest(lhs: "-858993461", rhs: "18446744073709551629", expecting: "-15845632536057006862552897969") + self.mulTest(lhs: "-858993461", rhs: "-18446744073709551629", expecting: "15845632536057006862552897969") + self.mulTest(lhs: "-858993461", rhs: "340282366920938463703182280389992382466", expecting: "-292300328078688844304419423746071986378105054826") + self.mulTest(lhs: "-858993461", rhs: "-340282366920938463703182280389992382466", expecting: "292300328078688844304419423746071986378105054826") + self.mulTest(lhs: "-858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-5391989344728911086721632985409990913673202021406245769519739332229") + self.mulTest(lhs: "-858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "5391989344728911086721632985409990913673202021406245769519739332229") + self.mulTest(lhs: "-858993461", rhs: "18446744073709551635", expecting: "-15845632536057006867706858735") + self.mulTest(lhs: "-858993461", rhs: "-18446744073709551635", expecting: "15845632536057006867706858735") + } + + func test_mul_big_int() { + 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: "8589934592", expecting: "0") + self.mulTest(lhs: "0", rhs: "-8589934592", expecting: "0") + self.mulTest(lhs: "0", rhs: "7730941133", expecting: "0") + self.mulTest(lhs: "0", rhs: "-7730941133", expecting: "0") + self.mulTest(lhs: "0", rhs: "6871947674", expecting: "0") + self.mulTest(lhs: "0", rhs: "-6871947674", expecting: "0") + self.mulTest(lhs: "0", rhs: "6012954215", expecting: "0") + self.mulTest(lhs: "0", rhs: "-6012954215", expecting: "0") + self.mulTest(lhs: "0", rhs: "5153960756", expecting: "0") + self.mulTest(lhs: "0", rhs: "-5153960756", expecting: "0") + self.mulTest(lhs: "0", rhs: "4294967297", expecting: "0") + self.mulTest(lhs: "0", rhs: "-4294967297", expecting: "0") + self.mulTest(lhs: "0", rhs: "3435973838", expecting: "0") + self.mulTest(lhs: "0", rhs: "-3435973838", expecting: "0") + self.mulTest(lhs: "0", rhs: "2576980379", expecting: "0") + self.mulTest(lhs: "0", rhs: "-2576980379", expecting: "0") + self.mulTest(lhs: "0", rhs: "1717986920", expecting: "0") + self.mulTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.mulTest(lhs: "0", rhs: "858993461", expecting: "0") + self.mulTest(lhs: "0", rhs: "-858993461", 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: "8589934592", expecting: "8589934592") + self.mulTest(lhs: "1", rhs: "-8589934592", expecting: "-8589934592") + self.mulTest(lhs: "1", rhs: "7730941133", expecting: "7730941133") + self.mulTest(lhs: "1", rhs: "-7730941133", expecting: "-7730941133") + self.mulTest(lhs: "1", rhs: "6871947674", expecting: "6871947674") + self.mulTest(lhs: "1", rhs: "-6871947674", expecting: "-6871947674") + self.mulTest(lhs: "1", rhs: "6012954215", expecting: "6012954215") + self.mulTest(lhs: "1", rhs: "-6012954215", expecting: "-6012954215") + self.mulTest(lhs: "1", rhs: "5153960756", expecting: "5153960756") + self.mulTest(lhs: "1", rhs: "-5153960756", expecting: "-5153960756") + self.mulTest(lhs: "1", rhs: "4294967297", expecting: "4294967297") + self.mulTest(lhs: "1", rhs: "-4294967297", expecting: "-4294967297") + self.mulTest(lhs: "1", rhs: "3435973838", expecting: "3435973838") + self.mulTest(lhs: "1", rhs: "-3435973838", expecting: "-3435973838") + self.mulTest(lhs: "1", rhs: "2576980379", expecting: "2576980379") + self.mulTest(lhs: "1", rhs: "-2576980379", expecting: "-2576980379") + self.mulTest(lhs: "1", rhs: "1717986920", expecting: "1717986920") + self.mulTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986920") + self.mulTest(lhs: "1", rhs: "858993461", expecting: "858993461") + self.mulTest(lhs: "1", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "-8589934592") + self.mulTest(lhs: "-1", rhs: "-8589934592", expecting: "8589934592") + self.mulTest(lhs: "-1", rhs: "7730941133", expecting: "-7730941133") + self.mulTest(lhs: "-1", rhs: "-7730941133", expecting: "7730941133") + self.mulTest(lhs: "-1", rhs: "6871947674", expecting: "-6871947674") + self.mulTest(lhs: "-1", rhs: "-6871947674", expecting: "6871947674") + self.mulTest(lhs: "-1", rhs: "6012954215", expecting: "-6012954215") + self.mulTest(lhs: "-1", rhs: "-6012954215", expecting: "6012954215") + self.mulTest(lhs: "-1", rhs: "5153960756", expecting: "-5153960756") + self.mulTest(lhs: "-1", rhs: "-5153960756", expecting: "5153960756") + self.mulTest(lhs: "-1", rhs: "4294967297", expecting: "-4294967297") + self.mulTest(lhs: "-1", rhs: "-4294967297", expecting: "4294967297") + self.mulTest(lhs: "-1", rhs: "3435973838", expecting: "-3435973838") + self.mulTest(lhs: "-1", rhs: "-3435973838", expecting: "3435973838") + self.mulTest(lhs: "-1", rhs: "2576980379", expecting: "-2576980379") + self.mulTest(lhs: "-1", rhs: "-2576980379", expecting: "2576980379") + self.mulTest(lhs: "-1", rhs: "1717986920", expecting: "-1717986920") + self.mulTest(lhs: "-1", rhs: "-1717986920", expecting: "1717986920") + self.mulTest(lhs: "-1", rhs: "858993461", expecting: "-858993461") + self.mulTest(lhs: "-1", rhs: "-858993461", expecting: "858993461") + 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: "8589934592", expecting: "158456325028528675178497966080") + self.mulTest(lhs: "18446744073709551615", rhs: "-8589934592", expecting: "-158456325028528675178497966080") + self.mulTest(lhs: "18446744073709551615", rhs: "7730941133", expecting: "142610692529365156475390079795") + self.mulTest(lhs: "18446744073709551615", rhs: "-7730941133", expecting: "-142610692529365156475390079795") + self.mulTest(lhs: "18446744073709551615", rhs: "6871947674", expecting: "126765060030201637772282193510") + self.mulTest(lhs: "18446744073709551615", rhs: "-6871947674", expecting: "-126765060030201637772282193510") + self.mulTest(lhs: "18446744073709551615", rhs: "6012954215", expecting: "110919427531038119069174307225") + self.mulTest(lhs: "18446744073709551615", rhs: "-6012954215", expecting: "-110919427531038119069174307225") + self.mulTest(lhs: "18446744073709551615", rhs: "5153960756", expecting: "95073795031874600366066420940") + self.mulTest(lhs: "18446744073709551615", rhs: "-5153960756", expecting: "-95073795031874600366066420940") + self.mulTest(lhs: "18446744073709551615", rhs: "4294967297", expecting: "79228162532711081662958534655") + self.mulTest(lhs: "18446744073709551615", rhs: "-4294967297", expecting: "-79228162532711081662958534655") + self.mulTest(lhs: "18446744073709551615", rhs: "3435973838", expecting: "63382530033547562959850648370") + self.mulTest(lhs: "18446744073709551615", rhs: "-3435973838", expecting: "-63382530033547562959850648370") + self.mulTest(lhs: "18446744073709551615", rhs: "2576980379", expecting: "47536897534384044256742762085") + self.mulTest(lhs: "18446744073709551615", rhs: "-2576980379", expecting: "-47536897534384044256742762085") + self.mulTest(lhs: "18446744073709551615", rhs: "1717986920", expecting: "31691265035220525553634875800") + self.mulTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "-31691265035220525553634875800") + self.mulTest(lhs: "18446744073709551615", rhs: "858993461", expecting: "15845632536057006850526989515") + self.mulTest(lhs: "18446744073709551615", rhs: "-858993461", expecting: "-15845632536057006850526989515") + 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: "8589934592", expecting: "-158456325028528675178497966080") + self.mulTest(lhs: "-18446744073709551615", rhs: "-8589934592", expecting: "158456325028528675178497966080") + self.mulTest(lhs: "-18446744073709551615", rhs: "7730941133", expecting: "-142610692529365156475390079795") + self.mulTest(lhs: "-18446744073709551615", rhs: "-7730941133", expecting: "142610692529365156475390079795") + self.mulTest(lhs: "-18446744073709551615", rhs: "6871947674", expecting: "-126765060030201637772282193510") + self.mulTest(lhs: "-18446744073709551615", rhs: "-6871947674", expecting: "126765060030201637772282193510") + self.mulTest(lhs: "-18446744073709551615", rhs: "6012954215", expecting: "-110919427531038119069174307225") + self.mulTest(lhs: "-18446744073709551615", rhs: "-6012954215", expecting: "110919427531038119069174307225") + self.mulTest(lhs: "-18446744073709551615", rhs: "5153960756", expecting: "-95073795031874600366066420940") + self.mulTest(lhs: "-18446744073709551615", rhs: "-5153960756", expecting: "95073795031874600366066420940") + self.mulTest(lhs: "-18446744073709551615", rhs: "4294967297", expecting: "-79228162532711081662958534655") + self.mulTest(lhs: "-18446744073709551615", rhs: "-4294967297", expecting: "79228162532711081662958534655") + self.mulTest(lhs: "-18446744073709551615", rhs: "3435973838", expecting: "-63382530033547562959850648370") + self.mulTest(lhs: "-18446744073709551615", rhs: "-3435973838", expecting: "63382530033547562959850648370") + self.mulTest(lhs: "-18446744073709551615", rhs: "2576980379", expecting: "-47536897534384044256742762085") + self.mulTest(lhs: "-18446744073709551615", rhs: "-2576980379", expecting: "47536897534384044256742762085") + self.mulTest(lhs: "-18446744073709551615", rhs: "1717986920", expecting: "-31691265035220525553634875800") + self.mulTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "31691265035220525553634875800") + self.mulTest(lhs: "-18446744073709551615", rhs: "858993461", expecting: "-15845632536057006850526989515") + self.mulTest(lhs: "-18446744073709551615", rhs: "-858993461", expecting: "15845632536057006850526989515") + 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: "8589934592", expecting: "158456325028528675195677835264") + self.mulTest(lhs: "18446744073709551617", rhs: "-8589934592", expecting: "-158456325028528675195677835264") + self.mulTest(lhs: "18446744073709551617", rhs: "7730941133", expecting: "142610692529365156490851962061") + self.mulTest(lhs: "18446744073709551617", rhs: "-7730941133", expecting: "-142610692529365156490851962061") + self.mulTest(lhs: "18446744073709551617", rhs: "6871947674", expecting: "126765060030201637786026088858") + self.mulTest(lhs: "18446744073709551617", rhs: "-6871947674", expecting: "-126765060030201637786026088858") + self.mulTest(lhs: "18446744073709551617", rhs: "6012954215", expecting: "110919427531038119081200215655") + self.mulTest(lhs: "18446744073709551617", rhs: "-6012954215", expecting: "-110919427531038119081200215655") + self.mulTest(lhs: "18446744073709551617", rhs: "5153960756", expecting: "95073795031874600376374342452") + self.mulTest(lhs: "18446744073709551617", rhs: "-5153960756", expecting: "-95073795031874600376374342452") + self.mulTest(lhs: "18446744073709551617", rhs: "4294967297", expecting: "79228162532711081671548469249") + self.mulTest(lhs: "18446744073709551617", rhs: "-4294967297", expecting: "-79228162532711081671548469249") + self.mulTest(lhs: "18446744073709551617", rhs: "3435973838", expecting: "63382530033547562966722596046") + self.mulTest(lhs: "18446744073709551617", rhs: "-3435973838", expecting: "-63382530033547562966722596046") + self.mulTest(lhs: "18446744073709551617", rhs: "2576980379", expecting: "47536897534384044261896722843") + self.mulTest(lhs: "18446744073709551617", rhs: "-2576980379", expecting: "-47536897534384044261896722843") + self.mulTest(lhs: "18446744073709551617", rhs: "1717986920", expecting: "31691265035220525557070849640") + self.mulTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "-31691265035220525557070849640") + self.mulTest(lhs: "18446744073709551617", rhs: "858993461", expecting: "15845632536057006852244976437") + self.mulTest(lhs: "18446744073709551617", rhs: "-858993461", expecting: "-15845632536057006852244976437") + 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: "8589934592", expecting: "-158456325028528675195677835264") + self.mulTest(lhs: "-18446744073709551617", rhs: "-8589934592", expecting: "158456325028528675195677835264") + self.mulTest(lhs: "-18446744073709551617", rhs: "7730941133", expecting: "-142610692529365156490851962061") + self.mulTest(lhs: "-18446744073709551617", rhs: "-7730941133", expecting: "142610692529365156490851962061") + self.mulTest(lhs: "-18446744073709551617", rhs: "6871947674", expecting: "-126765060030201637786026088858") + self.mulTest(lhs: "-18446744073709551617", rhs: "-6871947674", expecting: "126765060030201637786026088858") + self.mulTest(lhs: "-18446744073709551617", rhs: "6012954215", expecting: "-110919427531038119081200215655") + self.mulTest(lhs: "-18446744073709551617", rhs: "-6012954215", expecting: "110919427531038119081200215655") + self.mulTest(lhs: "-18446744073709551617", rhs: "5153960756", expecting: "-95073795031874600376374342452") + self.mulTest(lhs: "-18446744073709551617", rhs: "-5153960756", expecting: "95073795031874600376374342452") + self.mulTest(lhs: "-18446744073709551617", rhs: "4294967297", expecting: "-79228162532711081671548469249") + self.mulTest(lhs: "-18446744073709551617", rhs: "-4294967297", expecting: "79228162532711081671548469249") + self.mulTest(lhs: "-18446744073709551617", rhs: "3435973838", expecting: "-63382530033547562966722596046") + self.mulTest(lhs: "-18446744073709551617", rhs: "-3435973838", expecting: "63382530033547562966722596046") + self.mulTest(lhs: "-18446744073709551617", rhs: "2576980379", expecting: "-47536897534384044261896722843") + self.mulTest(lhs: "-18446744073709551617", rhs: "-2576980379", expecting: "47536897534384044261896722843") + self.mulTest(lhs: "-18446744073709551617", rhs: "1717986920", expecting: "-31691265035220525557070849640") + self.mulTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "31691265035220525557070849640") + self.mulTest(lhs: "-18446744073709551617", rhs: "858993461", expecting: "-15845632536057006852244976437") + self.mulTest(lhs: "-18446744073709551617", rhs: "-858993461", expecting: "15845632536057006852244976437") + 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: "8589934592", expecting: "2923003274661805836565825990461094714516132855808") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "-2923003274661805836565825990461094714516132855808") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "7730941133", expecting: "2630702947263681726293431084111349513365615122842") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "-2630702947263681726293431084111349513365615122842") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "6871947674", expecting: "2338402619865557616021036177761604312215097389876") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "-2338402619865557616021036177761604312215097389876") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "6012954215", expecting: "2046102292467433505748641271411859111064579656910") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "-2046102292467433505748641271411859111064579656910") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "5153960756", expecting: "1753801965069309395476246365062113909914061923944") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "-1753801965069309395476246365062113909914061923944") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "4294967297", expecting: "1461501637671185285203851458712368708763544190978") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "-1461501637671185285203851458712368708763544190978") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "3435973838", expecting: "1169201310273061174931456552362623507613026458012") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "-1169201310273061174931456552362623507613026458012") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "2576980379", expecting: "876900982874937064659061646012878306462508725046") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "-876900982874937064659061646012878306462508725046") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986920", expecting: "584600655476812954386666739663133105311990992080") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-584600655476812954386666739663133105311990992080") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "858993461", expecting: "292300328078688844114271833313387904161473259114") + self.mulTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993461", expecting: "-292300328078688844114271833313387904161473259114") + 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: "8589934592", expecting: "-2923003274661805836565825990461094714516132855808") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "2923003274661805836565825990461094714516132855808") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "7730941133", expecting: "-2630702947263681726293431084111349513365615122842") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "2630702947263681726293431084111349513365615122842") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "6871947674", expecting: "-2338402619865557616021036177761604312215097389876") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "2338402619865557616021036177761604312215097389876") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "6012954215", expecting: "-2046102292467433505748641271411859111064579656910") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "2046102292467433505748641271411859111064579656910") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "5153960756", expecting: "-1753801965069309395476246365062113909914061923944") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "1753801965069309395476246365062113909914061923944") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "4294967297", expecting: "-1461501637671185285203851458712368708763544190978") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "1461501637671185285203851458712368708763544190978") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "3435973838", expecting: "-1169201310273061174931456552362623507613026458012") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "1169201310273061174931456552362623507613026458012") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "2576980379", expecting: "-876900982874937064659061646012878306462508725046") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "876900982874937064659061646012878306462508725046") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986920", expecting: "-584600655476812954386666739663133105311990992080") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "584600655476812954386666739663133105311990992080") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993461", expecting: "-292300328078688844114271833313387904161473259114") + self.mulTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993461", expecting: "292300328078688844114271833313387904161473259114") + 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: "8589934592", expecting: "53919893334301279595180036723362873019930571850917748365686812442624") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "-53919893334301279595180036723362873019930571850917748365686812442624") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "48527904002126571982739369203929856549347423334428105112168903475201") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "-48527904002126571982739369203929856549347423334428105112168903475201") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "43135914669951864370298701684496840078764274817938461858650994507778") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "-43135914669951864370298701684496840078764274817938461858650994507778") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "37743925337777156757858034165063823608181126301448818605133085540355") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "-37743925337777156757858034165063823608181126301448818605133085540355") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "32351936005602449145417366645630807137597977784959175351615176572932") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "-32351936005602449145417366645630807137597977784959175351615176572932") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "26959946673427741532976699126197790667014829268469532098097267605509") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "-26959946673427741532976699126197790667014829268469532098097267605509") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "21567957341253033920536031606764774196431680751979888844579358638086") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "-21567957341253033920536031606764774196431680751979888844579358638086") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "16175968009078326308095364087331757725848532235490245591061449670663") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "-16175968009078326308095364087331757725848532235490245591061449670663") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "10783978676903618695654696567898741255265383719000602337543540703240") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-10783978676903618695654696567898741255265383719000602337543540703240") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "5391989344728911083214029048465724784682235202510959084025631735817") + self.mulTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "-5391989344728911083214029048465724784682235202510959084025631735817") + 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: "8589934592", expecting: "-53919893334301279595180036723362873019930571850917748365686812442624") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "53919893334301279595180036723362873019930571850917748365686812442624") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "-48527904002126571982739369203929856549347423334428105112168903475201") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "48527904002126571982739369203929856549347423334428105112168903475201") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "-43135914669951864370298701684496840078764274817938461858650994507778") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "43135914669951864370298701684496840078764274817938461858650994507778") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "-37743925337777156757858034165063823608181126301448818605133085540355") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "37743925337777156757858034165063823608181126301448818605133085540355") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "-32351936005602449145417366645630807137597977784959175351615176572932") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "32351936005602449145417366645630807137597977784959175351615176572932") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "-26959946673427741532976699126197790667014829268469532098097267605509") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "26959946673427741532976699126197790667014829268469532098097267605509") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "-21567957341253033920536031606764774196431680751979888844579358638086") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "21567957341253033920536031606764774196431680751979888844579358638086") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "-16175968009078326308095364087331757725848532235490245591061449670663") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "16175968009078326308095364087331757725848532235490245591061449670663") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "-10783978676903618695654696567898741255265383719000602337543540703240") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "10783978676903618695654696567898741255265383719000602337543540703240") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "-5391989344728911083214029048465724784682235202510959084025631735817") + self.mulTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "5391989344728911083214029048465724784682235202510959084025631735817") + 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: "8589934592", expecting: "158456325028528675247217442816") + self.mulTest(lhs: "18446744073709551623", rhs: "-8589934592", expecting: "-158456325028528675247217442816") + self.mulTest(lhs: "18446744073709551623", rhs: "7730941133", expecting: "142610692529365156537237608859") + self.mulTest(lhs: "18446744073709551623", rhs: "-7730941133", expecting: "-142610692529365156537237608859") + self.mulTest(lhs: "18446744073709551623", rhs: "6871947674", expecting: "126765060030201637827257774902") + self.mulTest(lhs: "18446744073709551623", rhs: "-6871947674", expecting: "-126765060030201637827257774902") + self.mulTest(lhs: "18446744073709551623", rhs: "6012954215", expecting: "110919427531038119117277940945") + self.mulTest(lhs: "18446744073709551623", rhs: "-6012954215", expecting: "-110919427531038119117277940945") + self.mulTest(lhs: "18446744073709551623", rhs: "5153960756", expecting: "95073795031874600407298106988") + self.mulTest(lhs: "18446744073709551623", rhs: "-5153960756", expecting: "-95073795031874600407298106988") + self.mulTest(lhs: "18446744073709551623", rhs: "4294967297", expecting: "79228162532711081697318273031") + self.mulTest(lhs: "18446744073709551623", rhs: "-4294967297", expecting: "-79228162532711081697318273031") + self.mulTest(lhs: "18446744073709551623", rhs: "3435973838", expecting: "63382530033547562987338439074") + self.mulTest(lhs: "18446744073709551623", rhs: "-3435973838", expecting: "-63382530033547562987338439074") + self.mulTest(lhs: "18446744073709551623", rhs: "2576980379", expecting: "47536897534384044277358605117") + self.mulTest(lhs: "18446744073709551623", rhs: "-2576980379", expecting: "-47536897534384044277358605117") + self.mulTest(lhs: "18446744073709551623", rhs: "1717986920", expecting: "31691265035220525567378771160") + self.mulTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "-31691265035220525567378771160") + self.mulTest(lhs: "18446744073709551623", rhs: "858993461", expecting: "15845632536057006857398937203") + self.mulTest(lhs: "18446744073709551623", rhs: "-858993461", expecting: "-15845632536057006857398937203") + 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: "8589934592", expecting: "-158456325028528675247217442816") + self.mulTest(lhs: "-18446744073709551623", rhs: "-8589934592", expecting: "158456325028528675247217442816") + self.mulTest(lhs: "-18446744073709551623", rhs: "7730941133", expecting: "-142610692529365156537237608859") + self.mulTest(lhs: "-18446744073709551623", rhs: "-7730941133", expecting: "142610692529365156537237608859") + self.mulTest(lhs: "-18446744073709551623", rhs: "6871947674", expecting: "-126765060030201637827257774902") + self.mulTest(lhs: "-18446744073709551623", rhs: "-6871947674", expecting: "126765060030201637827257774902") + self.mulTest(lhs: "-18446744073709551623", rhs: "6012954215", expecting: "-110919427531038119117277940945") + self.mulTest(lhs: "-18446744073709551623", rhs: "-6012954215", expecting: "110919427531038119117277940945") + self.mulTest(lhs: "-18446744073709551623", rhs: "5153960756", expecting: "-95073795031874600407298106988") + self.mulTest(lhs: "-18446744073709551623", rhs: "-5153960756", expecting: "95073795031874600407298106988") + self.mulTest(lhs: "-18446744073709551623", rhs: "4294967297", expecting: "-79228162532711081697318273031") + self.mulTest(lhs: "-18446744073709551623", rhs: "-4294967297", expecting: "79228162532711081697318273031") + self.mulTest(lhs: "-18446744073709551623", rhs: "3435973838", expecting: "-63382530033547562987338439074") + self.mulTest(lhs: "-18446744073709551623", rhs: "-3435973838", expecting: "63382530033547562987338439074") + self.mulTest(lhs: "-18446744073709551623", rhs: "2576980379", expecting: "-47536897534384044277358605117") + self.mulTest(lhs: "-18446744073709551623", rhs: "-2576980379", expecting: "47536897534384044277358605117") + self.mulTest(lhs: "-18446744073709551623", rhs: "1717986920", expecting: "-31691265035220525567378771160") + self.mulTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "31691265035220525567378771160") + self.mulTest(lhs: "-18446744073709551623", rhs: "858993461", expecting: "-15845632536057006857398937203") + self.mulTest(lhs: "-18446744073709551623", rhs: "-858993461", expecting: "15845632536057006857398937203") + 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: "8589934592", expecting: "2923003274661805837516563940632266765638660259840") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "-2923003274661805837516563940632266765638660259840") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "7730941133", expecting: "2630702947263681727149095239287540452264341248410") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "-2630702947263681727149095239287540452264341248410") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "6871947674", expecting: "2338402619865557616781626537942814138890022236980") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "-2338402619865557616781626537942814138890022236980") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "6012954215", expecting: "2046102292467433506414157836598087825515703225550") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "-2046102292467433506414157836598087825515703225550") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "5153960756", expecting: "1753801965069309396046689135253361512141384214120") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "-1753801965069309396046689135253361512141384214120") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "4294967297", expecting: "1461501637671185285679220433908635198767065202690") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "-1461501637671185285679220433908635198767065202690") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "3435973838", expecting: "1169201310273061175311751732563908885392746191260") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "-1169201310273061175311751732563908885392746191260") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "2576980379", expecting: "876900982874937064944283031219182572018427179830") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "-876900982874937064944283031219182572018427179830") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986920", expecting: "584600655476812954576814329874456258644108168400") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-584600655476812954576814329874456258644108168400") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "858993461", expecting: "292300328078688844209345628529729945269789156970") + self.mulTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993461", expecting: "-292300328078688844209345628529729945269789156970") + 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: "8589934592", expecting: "-2923003274661805837516563940632266765638660259840") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "2923003274661805837516563940632266765638660259840") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "7730941133", expecting: "-2630702947263681727149095239287540452264341248410") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "2630702947263681727149095239287540452264341248410") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "6871947674", expecting: "-2338402619865557616781626537942814138890022236980") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "2338402619865557616781626537942814138890022236980") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "6012954215", expecting: "-2046102292467433506414157836598087825515703225550") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "2046102292467433506414157836598087825515703225550") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "5153960756", expecting: "-1753801965069309396046689135253361512141384214120") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "1753801965069309396046689135253361512141384214120") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "4294967297", expecting: "-1461501637671185285679220433908635198767065202690") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "1461501637671185285679220433908635198767065202690") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "3435973838", expecting: "-1169201310273061175311751732563908885392746191260") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "1169201310273061175311751732563908885392746191260") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "2576980379", expecting: "-876900982874937064944283031219182572018427179830") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "876900982874937064944283031219182572018427179830") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986920", expecting: "-584600655476812954576814329874456258644108168400") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "584600655476812954576814329874456258644108168400") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993461", expecting: "-292300328078688844209345628529729945269789156970") + self.mulTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993461", expecting: "292300328078688844209345628529729945269789156970") + 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: "8589934592", expecting: "53919893334301279612718056371333708037424051893341972550487015161856") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "-53919893334301279612718056371333708037424051893341972550487015161856") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "48527904002126571998523586887511946905396681528743820314518756314319") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "-48527904002126571998523586887511946905396681528743820314518756314319") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "43135914669951864384329117403690185773369311164145668078550497466782") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "-43135914669951864384329117403690185773369311164145668078550497466782") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "37743925337777156770134647919868424641341940799547515842582238619245") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "-37743925337777156770134647919868424641341940799547515842582238619245") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "32351936005602449155940178436046663509314570434949363606613979771708") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "-32351936005602449155940178436046663509314570434949363606613979771708") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "26959946673427741541745708952224902377287200070351211370645720924171") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "-26959946673427741541745708952224902377287200070351211370645720924171") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "21567957341253033927551239468403141245259829705753059134677462076634") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "-21567957341253033927551239468403141245259829705753059134677462076634") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "16175968009078326313356769984581380113232459341154906898709203229097") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "-16175968009078326313356769984581380113232459341154906898709203229097") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "10783978676903618699162300500759618981205088976556754662740944381560") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-10783978676903618699162300500759618981205088976556754662740944381560") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "5391989344728911084967831016937857849177718611958602426772685534023") + self.mulTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "-5391989344728911084967831016937857849177718611958602426772685534023") + 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: "8589934592", expecting: "-53919893334301279612718056371333708037424051893341972550487015161856") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "53919893334301279612718056371333708037424051893341972550487015161856") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "-48527904002126571998523586887511946905396681528743820314518756314319") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "48527904002126571998523586887511946905396681528743820314518756314319") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "-43135914669951864384329117403690185773369311164145668078550497466782") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "43135914669951864384329117403690185773369311164145668078550497466782") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "-37743925337777156770134647919868424641341940799547515842582238619245") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "37743925337777156770134647919868424641341940799547515842582238619245") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "-32351936005602449155940178436046663509314570434949363606613979771708") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "32351936005602449155940178436046663509314570434949363606613979771708") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "-26959946673427741541745708952224902377287200070351211370645720924171") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "26959946673427741541745708952224902377287200070351211370645720924171") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "-21567957341253033927551239468403141245259829705753059134677462076634") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "21567957341253033927551239468403141245259829705753059134677462076634") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "-16175968009078326313356769984581380113232459341154906898709203229097") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "16175968009078326313356769984581380113232459341154906898709203229097") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "-10783978676903618699162300500759618981205088976556754662740944381560") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "10783978676903618699162300500759618981205088976556754662740944381560") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "-5391989344728911084967831016937857849177718611958602426772685534023") + self.mulTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "5391989344728911084967831016937857849177718611958602426772685534023") + 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: "8589934592", expecting: "158456325028528675298757050368") + self.mulTest(lhs: "18446744073709551629", rhs: "-8589934592", expecting: "-158456325028528675298757050368") + self.mulTest(lhs: "18446744073709551629", rhs: "7730941133", expecting: "142610692529365156583623255657") + self.mulTest(lhs: "18446744073709551629", rhs: "-7730941133", expecting: "-142610692529365156583623255657") + self.mulTest(lhs: "18446744073709551629", rhs: "6871947674", expecting: "126765060030201637868489460946") + self.mulTest(lhs: "18446744073709551629", rhs: "-6871947674", expecting: "-126765060030201637868489460946") + self.mulTest(lhs: "18446744073709551629", rhs: "6012954215", expecting: "110919427531038119153355666235") + self.mulTest(lhs: "18446744073709551629", rhs: "-6012954215", expecting: "-110919427531038119153355666235") + self.mulTest(lhs: "18446744073709551629", rhs: "5153960756", expecting: "95073795031874600438221871524") + self.mulTest(lhs: "18446744073709551629", rhs: "-5153960756", expecting: "-95073795031874600438221871524") + self.mulTest(lhs: "18446744073709551629", rhs: "4294967297", expecting: "79228162532711081723088076813") + self.mulTest(lhs: "18446744073709551629", rhs: "-4294967297", expecting: "-79228162532711081723088076813") + self.mulTest(lhs: "18446744073709551629", rhs: "3435973838", expecting: "63382530033547563007954282102") + self.mulTest(lhs: "18446744073709551629", rhs: "-3435973838", expecting: "-63382530033547563007954282102") + self.mulTest(lhs: "18446744073709551629", rhs: "2576980379", expecting: "47536897534384044292820487391") + self.mulTest(lhs: "18446744073709551629", rhs: "-2576980379", expecting: "-47536897534384044292820487391") + self.mulTest(lhs: "18446744073709551629", rhs: "1717986920", expecting: "31691265035220525577686692680") + self.mulTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "-31691265035220525577686692680") + self.mulTest(lhs: "18446744073709551629", rhs: "858993461", expecting: "15845632536057006862552897969") + self.mulTest(lhs: "18446744073709551629", rhs: "-858993461", expecting: "-15845632536057006862552897969") + 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: "8589934592", expecting: "-158456325028528675298757050368") + self.mulTest(lhs: "-18446744073709551629", rhs: "-8589934592", expecting: "158456325028528675298757050368") + self.mulTest(lhs: "-18446744073709551629", rhs: "7730941133", expecting: "-142610692529365156583623255657") + self.mulTest(lhs: "-18446744073709551629", rhs: "-7730941133", expecting: "142610692529365156583623255657") + self.mulTest(lhs: "-18446744073709551629", rhs: "6871947674", expecting: "-126765060030201637868489460946") + self.mulTest(lhs: "-18446744073709551629", rhs: "-6871947674", expecting: "126765060030201637868489460946") + self.mulTest(lhs: "-18446744073709551629", rhs: "6012954215", expecting: "-110919427531038119153355666235") + self.mulTest(lhs: "-18446744073709551629", rhs: "-6012954215", expecting: "110919427531038119153355666235") + self.mulTest(lhs: "-18446744073709551629", rhs: "5153960756", expecting: "-95073795031874600438221871524") + self.mulTest(lhs: "-18446744073709551629", rhs: "-5153960756", expecting: "95073795031874600438221871524") + self.mulTest(lhs: "-18446744073709551629", rhs: "4294967297", expecting: "-79228162532711081723088076813") + self.mulTest(lhs: "-18446744073709551629", rhs: "-4294967297", expecting: "79228162532711081723088076813") + self.mulTest(lhs: "-18446744073709551629", rhs: "3435973838", expecting: "-63382530033547563007954282102") + self.mulTest(lhs: "-18446744073709551629", rhs: "-3435973838", expecting: "63382530033547563007954282102") + self.mulTest(lhs: "-18446744073709551629", rhs: "2576980379", expecting: "-47536897534384044292820487391") + self.mulTest(lhs: "-18446744073709551629", rhs: "-2576980379", expecting: "47536897534384044292820487391") + self.mulTest(lhs: "-18446744073709551629", rhs: "1717986920", expecting: "-31691265035220525577686692680") + self.mulTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "31691265035220525577686692680") + self.mulTest(lhs: "-18446744073709551629", rhs: "858993461", expecting: "-15845632536057006862552897969") + self.mulTest(lhs: "-18446744073709551629", rhs: "-858993461", expecting: "15845632536057006862552897969") + 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: "8589934592", expecting: "2923003274661805838467301890803438816761187663872") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "-2923003274661805838467301890803438816761187663872") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "7730941133", expecting: "2630702947263681728004759394463731391163067373978") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "-2630702947263681728004759394463731391163067373978") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "6871947674", expecting: "2338402619865557617542216898124023965564947084084") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "-2338402619865557617542216898124023965564947084084") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "6012954215", expecting: "2046102292467433507079674401784316539966826794190") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "-2046102292467433507079674401784316539966826794190") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "5153960756", expecting: "1753801965069309396617131905444609114368706504296") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "-1753801965069309396617131905444609114368706504296") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "4294967297", expecting: "1461501637671185286154589409104901688770586214402") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "-1461501637671185286154589409104901688770586214402") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "3435973838", expecting: "1169201310273061175692046912765194263172465924508") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "-1169201310273061175692046912765194263172465924508") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "2576980379", expecting: "876900982874937065229504416425486837574345634614") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "-876900982874937065229504416425486837574345634614") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986920", expecting: "584600655476812954766961920085779411976225344720") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-584600655476812954766961920085779411976225344720") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "858993461", expecting: "292300328078688844304419423746071986378105054826") + self.mulTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993461", expecting: "-292300328078688844304419423746071986378105054826") + 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: "8589934592", expecting: "-2923003274661805838467301890803438816761187663872") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "2923003274661805838467301890803438816761187663872") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "7730941133", expecting: "-2630702947263681728004759394463731391163067373978") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "2630702947263681728004759394463731391163067373978") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "6871947674", expecting: "-2338402619865557617542216898124023965564947084084") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "2338402619865557617542216898124023965564947084084") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "6012954215", expecting: "-2046102292467433507079674401784316539966826794190") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "2046102292467433507079674401784316539966826794190") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "5153960756", expecting: "-1753801965069309396617131905444609114368706504296") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "1753801965069309396617131905444609114368706504296") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "4294967297", expecting: "-1461501637671185286154589409104901688770586214402") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "1461501637671185286154589409104901688770586214402") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "3435973838", expecting: "-1169201310273061175692046912765194263172465924508") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "1169201310273061175692046912765194263172465924508") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "2576980379", expecting: "-876900982874937065229504416425486837574345634614") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "876900982874937065229504416425486837574345634614") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986920", expecting: "-584600655476812954766961920085779411976225344720") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "584600655476812954766961920085779411976225344720") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993461", expecting: "-292300328078688844304419423746071986378105054826") + self.mulTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993461", expecting: "292300328078688844304419423746071986378105054826") + 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: "8589934592", expecting: "53919893334301279630256076019304543054917531935766196735287217881088") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "-53919893334301279630256076019304543054917531935766196735287217881088") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "48527904002126572014307804571094037261445939723059535516868609153437") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "-48527904002126572014307804571094037261445939723059535516868609153437") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "43135914669951864398359533122883531467974347510352874298450000425786") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "-43135914669951864398359533122883531467974347510352874298450000425786") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "37743925337777156782411261674673025674502755297646213080031391698135") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "-37743925337777156782411261674673025674502755297646213080031391698135") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "32351936005602449166462990226462519881031163084939551861612782970484") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "-32351936005602449166462990226462519881031163084939551861612782970484") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "26959946673427741550514718778252014087559570872232890643194174242833") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "-26959946673427741550514718778252014087559570872232890643194174242833") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "21567957341253033934566447330041508294087978659526229424775565515182") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "-21567957341253033934566447330041508294087978659526229424775565515182") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "16175968009078326318618175881831002500616386446819568206356956787531") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "-16175968009078326318618175881831002500616386446819568206356956787531") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "10783978676903618702669904433620496707144794234112906987938348059880") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-10783978676903618702669904433620496707144794234112906987938348059880") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "5391989344728911086721632985409990913673202021406245769519739332229") + self.mulTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "-5391989344728911086721632985409990913673202021406245769519739332229") + 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: "8589934592", expecting: "-53919893334301279630256076019304543054917531935766196735287217881088") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "53919893334301279630256076019304543054917531935766196735287217881088") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "-48527904002126572014307804571094037261445939723059535516868609153437") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "48527904002126572014307804571094037261445939723059535516868609153437") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "-43135914669951864398359533122883531467974347510352874298450000425786") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "43135914669951864398359533122883531467974347510352874298450000425786") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "-37743925337777156782411261674673025674502755297646213080031391698135") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "37743925337777156782411261674673025674502755297646213080031391698135") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "-32351936005602449166462990226462519881031163084939551861612782970484") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "32351936005602449166462990226462519881031163084939551861612782970484") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "-26959946673427741550514718778252014087559570872232890643194174242833") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "26959946673427741550514718778252014087559570872232890643194174242833") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "-21567957341253033934566447330041508294087978659526229424775565515182") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "21567957341253033934566447330041508294087978659526229424775565515182") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "-16175968009078326318618175881831002500616386446819568206356956787531") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "16175968009078326318618175881831002500616386446819568206356956787531") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "-10783978676903618702669904433620496707144794234112906987938348059880") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "10783978676903618702669904433620496707144794234112906987938348059880") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "-5391989344728911086721632985409990913673202021406245769519739332229") + self.mulTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "5391989344728911086721632985409990913673202021406245769519739332229") + 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: "8589934592", expecting: "158456325028528675350296657920") + self.mulTest(lhs: "18446744073709551635", rhs: "-8589934592", expecting: "-158456325028528675350296657920") + self.mulTest(lhs: "18446744073709551635", rhs: "7730941133", expecting: "142610692529365156630008902455") + self.mulTest(lhs: "18446744073709551635", rhs: "-7730941133", expecting: "-142610692529365156630008902455") + self.mulTest(lhs: "18446744073709551635", rhs: "6871947674", expecting: "126765060030201637909721146990") + self.mulTest(lhs: "18446744073709551635", rhs: "-6871947674", expecting: "-126765060030201637909721146990") + self.mulTest(lhs: "18446744073709551635", rhs: "6012954215", expecting: "110919427531038119189433391525") + self.mulTest(lhs: "18446744073709551635", rhs: "-6012954215", expecting: "-110919427531038119189433391525") + self.mulTest(lhs: "18446744073709551635", rhs: "5153960756", expecting: "95073795031874600469145636060") + self.mulTest(lhs: "18446744073709551635", rhs: "-5153960756", expecting: "-95073795031874600469145636060") + self.mulTest(lhs: "18446744073709551635", rhs: "4294967297", expecting: "79228162532711081748857880595") + self.mulTest(lhs: "18446744073709551635", rhs: "-4294967297", expecting: "-79228162532711081748857880595") + self.mulTest(lhs: "18446744073709551635", rhs: "3435973838", expecting: "63382530033547563028570125130") + self.mulTest(lhs: "18446744073709551635", rhs: "-3435973838", expecting: "-63382530033547563028570125130") + self.mulTest(lhs: "18446744073709551635", rhs: "2576980379", expecting: "47536897534384044308282369665") + self.mulTest(lhs: "18446744073709551635", rhs: "-2576980379", expecting: "-47536897534384044308282369665") + self.mulTest(lhs: "18446744073709551635", rhs: "1717986920", expecting: "31691265035220525587994614200") + self.mulTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "-31691265035220525587994614200") + self.mulTest(lhs: "18446744073709551635", rhs: "858993461", expecting: "15845632536057006867706858735") + self.mulTest(lhs: "18446744073709551635", rhs: "-858993461", expecting: "-15845632536057006867706858735") + 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: "8589934592", expecting: "-158456325028528675350296657920") + self.mulTest(lhs: "-18446744073709551635", rhs: "-8589934592", expecting: "158456325028528675350296657920") + self.mulTest(lhs: "-18446744073709551635", rhs: "7730941133", expecting: "-142610692529365156630008902455") + self.mulTest(lhs: "-18446744073709551635", rhs: "-7730941133", expecting: "142610692529365156630008902455") + self.mulTest(lhs: "-18446744073709551635", rhs: "6871947674", expecting: "-126765060030201637909721146990") + self.mulTest(lhs: "-18446744073709551635", rhs: "-6871947674", expecting: "126765060030201637909721146990") + self.mulTest(lhs: "-18446744073709551635", rhs: "6012954215", expecting: "-110919427531038119189433391525") + self.mulTest(lhs: "-18446744073709551635", rhs: "-6012954215", expecting: "110919427531038119189433391525") + self.mulTest(lhs: "-18446744073709551635", rhs: "5153960756", expecting: "-95073795031874600469145636060") + self.mulTest(lhs: "-18446744073709551635", rhs: "-5153960756", expecting: "95073795031874600469145636060") + self.mulTest(lhs: "-18446744073709551635", rhs: "4294967297", expecting: "-79228162532711081748857880595") + self.mulTest(lhs: "-18446744073709551635", rhs: "-4294967297", expecting: "79228162532711081748857880595") + self.mulTest(lhs: "-18446744073709551635", rhs: "3435973838", expecting: "-63382530033547563028570125130") + self.mulTest(lhs: "-18446744073709551635", rhs: "-3435973838", expecting: "63382530033547563028570125130") + self.mulTest(lhs: "-18446744073709551635", rhs: "2576980379", expecting: "-47536897534384044308282369665") + self.mulTest(lhs: "-18446744073709551635", rhs: "-2576980379", expecting: "47536897534384044308282369665") + self.mulTest(lhs: "-18446744073709551635", rhs: "1717986920", expecting: "-31691265035220525587994614200") + self.mulTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "31691265035220525587994614200") + self.mulTest(lhs: "-18446744073709551635", rhs: "858993461", expecting: "-15845632536057006867706858735") + self.mulTest(lhs: "-18446744073709551635", rhs: "-858993461", expecting: "15845632536057006867706858735") + } + + func test_mul_big_big() { + 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_int_int() { + self.divTest(lhs: "0", rhs: "1", expecting: "0") + self.divTest(lhs: "0", rhs: "-1", expecting: "0") + self.divTest(lhs: "0", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "0", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "0", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "0", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "0", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "0", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "0", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "0", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "0", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "0", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "0", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "0", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "0", rhs: "3435973838", expecting: "0") + self.divTest(lhs: "0", rhs: "-3435973838", expecting: "0") + self.divTest(lhs: "0", rhs: "2576980379", expecting: "0") + self.divTest(lhs: "0", rhs: "-2576980379", expecting: "0") + self.divTest(lhs: "0", rhs: "1717986920", expecting: "0") + self.divTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "0", rhs: "858993461", expecting: "0") + self.divTest(lhs: "0", rhs: "-858993461", expecting: "0") + self.divTest(lhs: "1", rhs: "1", expecting: "1") + self.divTest(lhs: "1", rhs: "-1", expecting: "-1") + self.divTest(lhs: "1", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "1", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "1", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "1", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "1", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "1", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "1", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "1", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "1", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "1", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "1", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "1", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "1", rhs: "3435973838", expecting: "0") + self.divTest(lhs: "1", rhs: "-3435973838", expecting: "0") + self.divTest(lhs: "1", rhs: "2576980379", expecting: "0") + self.divTest(lhs: "1", rhs: "-2576980379", expecting: "0") + self.divTest(lhs: "1", rhs: "1717986920", expecting: "0") + self.divTest(lhs: "1", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "1", rhs: "858993461", expecting: "0") + self.divTest(lhs: "1", rhs: "-858993461", expecting: "0") + self.divTest(lhs: "-1", rhs: "1", expecting: "-1") + self.divTest(lhs: "-1", rhs: "-1", expecting: "1") + self.divTest(lhs: "-1", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "-1", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "-1", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "-1", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "-1", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "-1", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "-1", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "-1", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "-1", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "-1", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "-1", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "-1", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "-1", rhs: "3435973838", expecting: "0") + self.divTest(lhs: "-1", rhs: "-3435973838", expecting: "0") + self.divTest(lhs: "-1", rhs: "2576980379", expecting: "0") + self.divTest(lhs: "-1", rhs: "-2576980379", expecting: "0") + self.divTest(lhs: "-1", rhs: "1717986920", expecting: "0") + self.divTest(lhs: "-1", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "-1", rhs: "858993461", expecting: "0") + self.divTest(lhs: "-1", rhs: "-858993461", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "1", expecting: "8589934592") + self.divTest(lhs: "8589934592", rhs: "-1", expecting: "-8589934592") + self.divTest(lhs: "8589934592", rhs: "8589934592", expecting: "1") + self.divTest(lhs: "8589934592", rhs: "-8589934592", expecting: "-1") + self.divTest(lhs: "8589934592", rhs: "7730941133", expecting: "1") + self.divTest(lhs: "8589934592", rhs: "-7730941133", expecting: "-1") + self.divTest(lhs: "8589934592", rhs: "6871947674", expecting: "1") + self.divTest(lhs: "8589934592", rhs: "-6871947674", expecting: "-1") + self.divTest(lhs: "8589934592", rhs: "6012954215", expecting: "1") + self.divTest(lhs: "8589934592", rhs: "-6012954215", expecting: "-1") + self.divTest(lhs: "8589934592", rhs: "5153960756", expecting: "1") + self.divTest(lhs: "8589934592", rhs: "-5153960756", expecting: "-1") + self.divTest(lhs: "8589934592", rhs: "4294967297", expecting: "1") + self.divTest(lhs: "8589934592", rhs: "-4294967297", expecting: "-1") + self.divTest(lhs: "8589934592", rhs: "3435973838", expecting: "2") + self.divTest(lhs: "8589934592", rhs: "-3435973838", expecting: "-2") + self.divTest(lhs: "8589934592", rhs: "2576980379", expecting: "3") + self.divTest(lhs: "8589934592", rhs: "-2576980379", expecting: "-3") + self.divTest(lhs: "8589934592", rhs: "1717986920", expecting: "4") + self.divTest(lhs: "8589934592", rhs: "-1717986920", expecting: "-4") + self.divTest(lhs: "8589934592", rhs: "858993461", expecting: "9") + self.divTest(lhs: "8589934592", rhs: "-858993461", expecting: "-9") + self.divTest(lhs: "-8589934592", rhs: "1", expecting: "-8589934592") + self.divTest(lhs: "-8589934592", rhs: "-1", expecting: "8589934592") + self.divTest(lhs: "-8589934592", rhs: "8589934592", expecting: "-1") + self.divTest(lhs: "-8589934592", rhs: "-8589934592", expecting: "1") + self.divTest(lhs: "-8589934592", rhs: "7730941133", expecting: "-1") + self.divTest(lhs: "-8589934592", rhs: "-7730941133", expecting: "1") + self.divTest(lhs: "-8589934592", rhs: "6871947674", expecting: "-1") + self.divTest(lhs: "-8589934592", rhs: "-6871947674", expecting: "1") + self.divTest(lhs: "-8589934592", rhs: "6012954215", expecting: "-1") + self.divTest(lhs: "-8589934592", rhs: "-6012954215", expecting: "1") + self.divTest(lhs: "-8589934592", rhs: "5153960756", expecting: "-1") + self.divTest(lhs: "-8589934592", rhs: "-5153960756", expecting: "1") + self.divTest(lhs: "-8589934592", rhs: "4294967297", expecting: "-1") + self.divTest(lhs: "-8589934592", rhs: "-4294967297", expecting: "1") + self.divTest(lhs: "-8589934592", rhs: "3435973838", expecting: "-2") + self.divTest(lhs: "-8589934592", rhs: "-3435973838", expecting: "2") + self.divTest(lhs: "-8589934592", rhs: "2576980379", expecting: "-3") + self.divTest(lhs: "-8589934592", rhs: "-2576980379", expecting: "3") + self.divTest(lhs: "-8589934592", rhs: "1717986920", expecting: "-4") + self.divTest(lhs: "-8589934592", rhs: "-1717986920", expecting: "4") + self.divTest(lhs: "-8589934592", rhs: "858993461", expecting: "-9") + self.divTest(lhs: "-8589934592", rhs: "-858993461", expecting: "9") + self.divTest(lhs: "7730941133", rhs: "1", expecting: "7730941133") + self.divTest(lhs: "7730941133", rhs: "-1", expecting: "-7730941133") + self.divTest(lhs: "7730941133", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "7730941133", expecting: "1") + self.divTest(lhs: "7730941133", rhs: "-7730941133", expecting: "-1") + self.divTest(lhs: "7730941133", rhs: "6871947674", expecting: "1") + self.divTest(lhs: "7730941133", rhs: "-6871947674", expecting: "-1") + self.divTest(lhs: "7730941133", rhs: "6012954215", expecting: "1") + self.divTest(lhs: "7730941133", rhs: "-6012954215", expecting: "-1") + self.divTest(lhs: "7730941133", rhs: "5153960756", expecting: "1") + self.divTest(lhs: "7730941133", rhs: "-5153960756", expecting: "-1") + self.divTest(lhs: "7730941133", rhs: "4294967297", expecting: "1") + self.divTest(lhs: "7730941133", rhs: "-4294967297", expecting: "-1") + self.divTest(lhs: "7730941133", rhs: "3435973838", expecting: "2") + self.divTest(lhs: "7730941133", rhs: "-3435973838", expecting: "-2") + self.divTest(lhs: "7730941133", rhs: "2576980379", expecting: "2") + self.divTest(lhs: "7730941133", rhs: "-2576980379", expecting: "-2") + self.divTest(lhs: "7730941133", rhs: "1717986920", expecting: "4") + self.divTest(lhs: "7730941133", rhs: "-1717986920", expecting: "-4") + self.divTest(lhs: "7730941133", rhs: "858993461", expecting: "8") + self.divTest(lhs: "7730941133", rhs: "-858993461", expecting: "-8") + self.divTest(lhs: "-7730941133", rhs: "1", expecting: "-7730941133") + self.divTest(lhs: "-7730941133", rhs: "-1", expecting: "7730941133") + self.divTest(lhs: "-7730941133", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "7730941133", expecting: "-1") + self.divTest(lhs: "-7730941133", rhs: "-7730941133", expecting: "1") + self.divTest(lhs: "-7730941133", rhs: "6871947674", expecting: "-1") + self.divTest(lhs: "-7730941133", rhs: "-6871947674", expecting: "1") + self.divTest(lhs: "-7730941133", rhs: "6012954215", expecting: "-1") + self.divTest(lhs: "-7730941133", rhs: "-6012954215", expecting: "1") + self.divTest(lhs: "-7730941133", rhs: "5153960756", expecting: "-1") + self.divTest(lhs: "-7730941133", rhs: "-5153960756", expecting: "1") + self.divTest(lhs: "-7730941133", rhs: "4294967297", expecting: "-1") + self.divTest(lhs: "-7730941133", rhs: "-4294967297", expecting: "1") + self.divTest(lhs: "-7730941133", rhs: "3435973838", expecting: "-2") + self.divTest(lhs: "-7730941133", rhs: "-3435973838", expecting: "2") + self.divTest(lhs: "-7730941133", rhs: "2576980379", expecting: "-2") + self.divTest(lhs: "-7730941133", rhs: "-2576980379", expecting: "2") + self.divTest(lhs: "-7730941133", rhs: "1717986920", expecting: "-4") + self.divTest(lhs: "-7730941133", rhs: "-1717986920", expecting: "4") + self.divTest(lhs: "-7730941133", rhs: "858993461", expecting: "-8") + self.divTest(lhs: "-7730941133", rhs: "-858993461", expecting: "8") + self.divTest(lhs: "6871947674", rhs: "1", expecting: "6871947674") + self.divTest(lhs: "6871947674", rhs: "-1", expecting: "-6871947674") + self.divTest(lhs: "6871947674", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "6871947674", expecting: "1") + self.divTest(lhs: "6871947674", rhs: "-6871947674", expecting: "-1") + self.divTest(lhs: "6871947674", rhs: "6012954215", expecting: "1") + self.divTest(lhs: "6871947674", rhs: "-6012954215", expecting: "-1") + self.divTest(lhs: "6871947674", rhs: "5153960756", expecting: "1") + self.divTest(lhs: "6871947674", rhs: "-5153960756", expecting: "-1") + self.divTest(lhs: "6871947674", rhs: "4294967297", expecting: "1") + self.divTest(lhs: "6871947674", rhs: "-4294967297", expecting: "-1") + self.divTest(lhs: "6871947674", rhs: "3435973838", expecting: "1") + self.divTest(lhs: "6871947674", rhs: "-3435973838", expecting: "-1") + self.divTest(lhs: "6871947674", rhs: "2576980379", expecting: "2") + self.divTest(lhs: "6871947674", rhs: "-2576980379", expecting: "-2") + self.divTest(lhs: "6871947674", rhs: "1717986920", expecting: "3") + self.divTest(lhs: "6871947674", rhs: "-1717986920", expecting: "-3") + self.divTest(lhs: "6871947674", rhs: "858993461", expecting: "7") + self.divTest(lhs: "6871947674", rhs: "-858993461", expecting: "-7") + self.divTest(lhs: "-6871947674", rhs: "1", expecting: "-6871947674") + self.divTest(lhs: "-6871947674", rhs: "-1", expecting: "6871947674") + self.divTest(lhs: "-6871947674", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "6871947674", expecting: "-1") + self.divTest(lhs: "-6871947674", rhs: "-6871947674", expecting: "1") + self.divTest(lhs: "-6871947674", rhs: "6012954215", expecting: "-1") + self.divTest(lhs: "-6871947674", rhs: "-6012954215", expecting: "1") + self.divTest(lhs: "-6871947674", rhs: "5153960756", expecting: "-1") + self.divTest(lhs: "-6871947674", rhs: "-5153960756", expecting: "1") + self.divTest(lhs: "-6871947674", rhs: "4294967297", expecting: "-1") + self.divTest(lhs: "-6871947674", rhs: "-4294967297", expecting: "1") + self.divTest(lhs: "-6871947674", rhs: "3435973838", expecting: "-1") + self.divTest(lhs: "-6871947674", rhs: "-3435973838", expecting: "1") + self.divTest(lhs: "-6871947674", rhs: "2576980379", expecting: "-2") + self.divTest(lhs: "-6871947674", rhs: "-2576980379", expecting: "2") + self.divTest(lhs: "-6871947674", rhs: "1717986920", expecting: "-3") + self.divTest(lhs: "-6871947674", rhs: "-1717986920", expecting: "3") + self.divTest(lhs: "-6871947674", rhs: "858993461", expecting: "-7") + self.divTest(lhs: "-6871947674", rhs: "-858993461", expecting: "7") + self.divTest(lhs: "6012954215", rhs: "1", expecting: "6012954215") + self.divTest(lhs: "6012954215", rhs: "-1", expecting: "-6012954215") + self.divTest(lhs: "6012954215", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "6012954215", expecting: "1") + self.divTest(lhs: "6012954215", rhs: "-6012954215", expecting: "-1") + self.divTest(lhs: "6012954215", rhs: "5153960756", expecting: "1") + self.divTest(lhs: "6012954215", rhs: "-5153960756", expecting: "-1") + self.divTest(lhs: "6012954215", rhs: "4294967297", expecting: "1") + self.divTest(lhs: "6012954215", rhs: "-4294967297", expecting: "-1") + self.divTest(lhs: "6012954215", rhs: "3435973838", expecting: "1") + self.divTest(lhs: "6012954215", rhs: "-3435973838", expecting: "-1") + self.divTest(lhs: "6012954215", rhs: "2576980379", expecting: "2") + self.divTest(lhs: "6012954215", rhs: "-2576980379", expecting: "-2") + self.divTest(lhs: "6012954215", rhs: "1717986920", expecting: "3") + self.divTest(lhs: "6012954215", rhs: "-1717986920", expecting: "-3") + self.divTest(lhs: "6012954215", rhs: "858993461", expecting: "6") + self.divTest(lhs: "6012954215", rhs: "-858993461", expecting: "-6") + self.divTest(lhs: "-6012954215", rhs: "1", expecting: "-6012954215") + self.divTest(lhs: "-6012954215", rhs: "-1", expecting: "6012954215") + self.divTest(lhs: "-6012954215", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "6012954215", expecting: "-1") + self.divTest(lhs: "-6012954215", rhs: "-6012954215", expecting: "1") + self.divTest(lhs: "-6012954215", rhs: "5153960756", expecting: "-1") + self.divTest(lhs: "-6012954215", rhs: "-5153960756", expecting: "1") + self.divTest(lhs: "-6012954215", rhs: "4294967297", expecting: "-1") + self.divTest(lhs: "-6012954215", rhs: "-4294967297", expecting: "1") + self.divTest(lhs: "-6012954215", rhs: "3435973838", expecting: "-1") + self.divTest(lhs: "-6012954215", rhs: "-3435973838", expecting: "1") + self.divTest(lhs: "-6012954215", rhs: "2576980379", expecting: "-2") + self.divTest(lhs: "-6012954215", rhs: "-2576980379", expecting: "2") + self.divTest(lhs: "-6012954215", rhs: "1717986920", expecting: "-3") + self.divTest(lhs: "-6012954215", rhs: "-1717986920", expecting: "3") + self.divTest(lhs: "-6012954215", rhs: "858993461", expecting: "-6") + self.divTest(lhs: "-6012954215", rhs: "-858993461", expecting: "6") + self.divTest(lhs: "5153960756", rhs: "1", expecting: "5153960756") + self.divTest(lhs: "5153960756", rhs: "-1", expecting: "-5153960756") + self.divTest(lhs: "5153960756", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "5153960756", expecting: "1") + self.divTest(lhs: "5153960756", rhs: "-5153960756", expecting: "-1") + self.divTest(lhs: "5153960756", rhs: "4294967297", expecting: "1") + self.divTest(lhs: "5153960756", rhs: "-4294967297", expecting: "-1") + self.divTest(lhs: "5153960756", rhs: "3435973838", expecting: "1") + self.divTest(lhs: "5153960756", rhs: "-3435973838", expecting: "-1") + self.divTest(lhs: "5153960756", rhs: "2576980379", expecting: "1") + self.divTest(lhs: "5153960756", rhs: "-2576980379", expecting: "-1") + self.divTest(lhs: "5153960756", rhs: "1717986920", expecting: "2") + self.divTest(lhs: "5153960756", rhs: "-1717986920", expecting: "-2") + self.divTest(lhs: "5153960756", rhs: "858993461", expecting: "5") + self.divTest(lhs: "5153960756", rhs: "-858993461", expecting: "-5") + self.divTest(lhs: "-5153960756", rhs: "1", expecting: "-5153960756") + self.divTest(lhs: "-5153960756", rhs: "-1", expecting: "5153960756") + self.divTest(lhs: "-5153960756", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "5153960756", expecting: "-1") + self.divTest(lhs: "-5153960756", rhs: "-5153960756", expecting: "1") + self.divTest(lhs: "-5153960756", rhs: "4294967297", expecting: "-1") + self.divTest(lhs: "-5153960756", rhs: "-4294967297", expecting: "1") + self.divTest(lhs: "-5153960756", rhs: "3435973838", expecting: "-1") + self.divTest(lhs: "-5153960756", rhs: "-3435973838", expecting: "1") + self.divTest(lhs: "-5153960756", rhs: "2576980379", expecting: "-1") + self.divTest(lhs: "-5153960756", rhs: "-2576980379", expecting: "1") + self.divTest(lhs: "-5153960756", rhs: "1717986920", expecting: "-2") + self.divTest(lhs: "-5153960756", rhs: "-1717986920", expecting: "2") + self.divTest(lhs: "-5153960756", rhs: "858993461", expecting: "-5") + self.divTest(lhs: "-5153960756", rhs: "-858993461", expecting: "5") + self.divTest(lhs: "4294967297", rhs: "1", expecting: "4294967297") + self.divTest(lhs: "4294967297", rhs: "-1", expecting: "-4294967297") + self.divTest(lhs: "4294967297", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "4294967297", expecting: "1") + self.divTest(lhs: "4294967297", rhs: "-4294967297", expecting: "-1") + self.divTest(lhs: "4294967297", rhs: "3435973838", expecting: "1") + self.divTest(lhs: "4294967297", rhs: "-3435973838", expecting: "-1") + self.divTest(lhs: "4294967297", rhs: "2576980379", expecting: "1") + self.divTest(lhs: "4294967297", rhs: "-2576980379", expecting: "-1") + self.divTest(lhs: "4294967297", rhs: "1717986920", expecting: "2") + self.divTest(lhs: "4294967297", rhs: "-1717986920", expecting: "-2") + self.divTest(lhs: "4294967297", rhs: "858993461", expecting: "4") + self.divTest(lhs: "4294967297", rhs: "-858993461", expecting: "-4") + self.divTest(lhs: "-4294967297", rhs: "1", expecting: "-4294967297") + self.divTest(lhs: "-4294967297", rhs: "-1", expecting: "4294967297") + self.divTest(lhs: "-4294967297", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "4294967297", expecting: "-1") + self.divTest(lhs: "-4294967297", rhs: "-4294967297", expecting: "1") + self.divTest(lhs: "-4294967297", rhs: "3435973838", expecting: "-1") + self.divTest(lhs: "-4294967297", rhs: "-3435973838", expecting: "1") + self.divTest(lhs: "-4294967297", rhs: "2576980379", expecting: "-1") + self.divTest(lhs: "-4294967297", rhs: "-2576980379", expecting: "1") + self.divTest(lhs: "-4294967297", rhs: "1717986920", expecting: "-2") + self.divTest(lhs: "-4294967297", rhs: "-1717986920", expecting: "2") + self.divTest(lhs: "-4294967297", rhs: "858993461", expecting: "-4") + self.divTest(lhs: "-4294967297", rhs: "-858993461", expecting: "4") + self.divTest(lhs: "3435973838", rhs: "1", expecting: "3435973838") + self.divTest(lhs: "3435973838", rhs: "-1", expecting: "-3435973838") + self.divTest(lhs: "3435973838", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "3435973838", expecting: "1") + self.divTest(lhs: "3435973838", rhs: "-3435973838", expecting: "-1") + self.divTest(lhs: "3435973838", rhs: "2576980379", expecting: "1") + self.divTest(lhs: "3435973838", rhs: "-2576980379", expecting: "-1") + self.divTest(lhs: "3435973838", rhs: "1717986920", expecting: "1") + self.divTest(lhs: "3435973838", rhs: "-1717986920", expecting: "-1") + self.divTest(lhs: "3435973838", rhs: "858993461", expecting: "3") + self.divTest(lhs: "3435973838", rhs: "-858993461", expecting: "-3") + self.divTest(lhs: "-3435973838", rhs: "1", expecting: "-3435973838") + self.divTest(lhs: "-3435973838", rhs: "-1", expecting: "3435973838") + self.divTest(lhs: "-3435973838", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "3435973838", expecting: "-1") + self.divTest(lhs: "-3435973838", rhs: "-3435973838", expecting: "1") + self.divTest(lhs: "-3435973838", rhs: "2576980379", expecting: "-1") + self.divTest(lhs: "-3435973838", rhs: "-2576980379", expecting: "1") + self.divTest(lhs: "-3435973838", rhs: "1717986920", expecting: "-1") + self.divTest(lhs: "-3435973838", rhs: "-1717986920", expecting: "1") + self.divTest(lhs: "-3435973838", rhs: "858993461", expecting: "-3") + self.divTest(lhs: "-3435973838", rhs: "-858993461", expecting: "3") + self.divTest(lhs: "2576980379", rhs: "1", expecting: "2576980379") + self.divTest(lhs: "2576980379", rhs: "-1", expecting: "-2576980379") + self.divTest(lhs: "2576980379", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "3435973838", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-3435973838", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "2576980379", expecting: "1") + self.divTest(lhs: "2576980379", rhs: "-2576980379", expecting: "-1") + self.divTest(lhs: "2576980379", rhs: "1717986920", expecting: "1") + self.divTest(lhs: "2576980379", rhs: "-1717986920", expecting: "-1") + self.divTest(lhs: "2576980379", rhs: "858993461", expecting: "2") + self.divTest(lhs: "2576980379", rhs: "-858993461", expecting: "-2") + self.divTest(lhs: "-2576980379", rhs: "1", expecting: "-2576980379") + self.divTest(lhs: "-2576980379", rhs: "-1", expecting: "2576980379") + self.divTest(lhs: "-2576980379", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "3435973838", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-3435973838", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "2576980379", expecting: "-1") + self.divTest(lhs: "-2576980379", rhs: "-2576980379", expecting: "1") + self.divTest(lhs: "-2576980379", rhs: "1717986920", expecting: "-1") + self.divTest(lhs: "-2576980379", rhs: "-1717986920", expecting: "1") + self.divTest(lhs: "-2576980379", rhs: "858993461", expecting: "-2") + self.divTest(lhs: "-2576980379", rhs: "-858993461", expecting: "2") + self.divTest(lhs: "1717986920", rhs: "1", expecting: "1717986920") + self.divTest(lhs: "1717986920", rhs: "-1", expecting: "-1717986920") + self.divTest(lhs: "1717986920", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "3435973838", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "-3435973838", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "2576980379", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "-2576980379", expecting: "0") + self.divTest(lhs: "1717986920", rhs: "1717986920", expecting: "1") + self.divTest(lhs: "1717986920", rhs: "-1717986920", expecting: "-1") + self.divTest(lhs: "1717986920", rhs: "858993461", expecting: "1") + self.divTest(lhs: "1717986920", rhs: "-858993461", expecting: "-1") + self.divTest(lhs: "-1717986920", rhs: "1", expecting: "-1717986920") + self.divTest(lhs: "-1717986920", rhs: "-1", expecting: "1717986920") + self.divTest(lhs: "-1717986920", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "3435973838", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-3435973838", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "2576980379", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "-2576980379", expecting: "0") + self.divTest(lhs: "-1717986920", rhs: "1717986920", expecting: "-1") + self.divTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "1") + self.divTest(lhs: "-1717986920", rhs: "858993461", expecting: "-1") + self.divTest(lhs: "-1717986920", rhs: "-858993461", expecting: "1") + self.divTest(lhs: "858993461", rhs: "1", expecting: "858993461") + self.divTest(lhs: "858993461", rhs: "-1", expecting: "-858993461") + self.divTest(lhs: "858993461", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "858993461", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "858993461", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "858993461", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "858993461", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "858993461", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "858993461", rhs: "3435973838", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-3435973838", expecting: "0") + self.divTest(lhs: "858993461", rhs: "2576980379", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-2576980379", expecting: "0") + self.divTest(lhs: "858993461", rhs: "1717986920", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "858993461", rhs: "858993461", expecting: "1") + self.divTest(lhs: "858993461", rhs: "-858993461", expecting: "-1") + self.divTest(lhs: "-858993461", rhs: "1", expecting: "-858993461") + self.divTest(lhs: "-858993461", rhs: "-1", expecting: "858993461") + self.divTest(lhs: "-858993461", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "3435973838", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-3435973838", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "2576980379", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-2576980379", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "1717986920", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "858993461", expecting: "-1") + self.divTest(lhs: "-858993461", rhs: "-858993461", expecting: "1") + } + + func test_div_int_big() { + 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: "8589934592", rhs: "1", expecting: "8589934592") + self.divTest(lhs: "8589934592", rhs: "-1", expecting: "-8589934592") + self.divTest(lhs: "8589934592", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "8589934592", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "1", expecting: "-8589934592") + self.divTest(lhs: "-8589934592", rhs: "-1", expecting: "8589934592") + self.divTest(lhs: "-8589934592", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-8589934592", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "1", expecting: "7730941133") + self.divTest(lhs: "7730941133", rhs: "-1", expecting: "-7730941133") + self.divTest(lhs: "7730941133", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "7730941133", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "1", expecting: "-7730941133") + self.divTest(lhs: "-7730941133", rhs: "-1", expecting: "7730941133") + self.divTest(lhs: "-7730941133", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-7730941133", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "1", expecting: "6871947674") + self.divTest(lhs: "6871947674", rhs: "-1", expecting: "-6871947674") + self.divTest(lhs: "6871947674", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "6871947674", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "1", expecting: "-6871947674") + self.divTest(lhs: "-6871947674", rhs: "-1", expecting: "6871947674") + self.divTest(lhs: "-6871947674", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-6871947674", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "1", expecting: "6012954215") + self.divTest(lhs: "6012954215", rhs: "-1", expecting: "-6012954215") + self.divTest(lhs: "6012954215", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "6012954215", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "1", expecting: "-6012954215") + self.divTest(lhs: "-6012954215", rhs: "-1", expecting: "6012954215") + self.divTest(lhs: "-6012954215", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-6012954215", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "1", expecting: "5153960756") + self.divTest(lhs: "5153960756", rhs: "-1", expecting: "-5153960756") + self.divTest(lhs: "5153960756", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "5153960756", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "1", expecting: "-5153960756") + self.divTest(lhs: "-5153960756", rhs: "-1", expecting: "5153960756") + self.divTest(lhs: "-5153960756", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-5153960756", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "1", expecting: "4294967297") + self.divTest(lhs: "4294967297", rhs: "-1", expecting: "-4294967297") + self.divTest(lhs: "4294967297", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "4294967297", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "1", expecting: "-4294967297") + self.divTest(lhs: "-4294967297", rhs: "-1", expecting: "4294967297") + self.divTest(lhs: "-4294967297", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-4294967297", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "1", expecting: "3435973838") + self.divTest(lhs: "3435973838", rhs: "-1", expecting: "-3435973838") + self.divTest(lhs: "3435973838", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "3435973838", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "1", expecting: "-3435973838") + self.divTest(lhs: "-3435973838", rhs: "-1", expecting: "3435973838") + self.divTest(lhs: "-3435973838", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-3435973838", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "1", expecting: "2576980379") + self.divTest(lhs: "2576980379", rhs: "-1", expecting: "-2576980379") + self.divTest(lhs: "2576980379", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "2576980379", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "1", expecting: "-2576980379") + self.divTest(lhs: "-2576980379", rhs: "-1", expecting: "2576980379") + self.divTest(lhs: "-2576980379", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-2576980379", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-2576980379", 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: "-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: "858993461", rhs: "1", expecting: "858993461") + self.divTest(lhs: "858993461", rhs: "-1", expecting: "-858993461") + self.divTest(lhs: "858993461", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "858993461", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "858993461", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "858993461", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "858993461", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "858993461", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "858993461", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "858993461", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "858993461", rhs: "-18446744073709551635", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "1", expecting: "-858993461") + self.divTest(lhs: "-858993461", rhs: "-1", expecting: "858993461") + self.divTest(lhs: "-858993461", rhs: "18446744073709551615", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-18446744073709551615", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "18446744073709551617", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-18446744073709551617", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-340282366920938463481821351505477763074", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "18446744073709551623", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-18446744073709551623", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-340282366920938463592501815947735072770", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "18446744073709551629", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-18446744073709551629", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-340282366920938463703182280389992382466", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "18446744073709551635", expecting: "0") + self.divTest(lhs: "-858993461", rhs: "-18446744073709551635", expecting: "0") + } + + func test_div_big_int() { + self.divTest(lhs: "0", rhs: "1", expecting: "0") + self.divTest(lhs: "0", rhs: "-1", expecting: "0") + self.divTest(lhs: "0", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "0", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "0", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "0", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "0", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "0", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "0", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "0", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "0", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "0", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "0", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "0", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "0", rhs: "3435973838", expecting: "0") + self.divTest(lhs: "0", rhs: "-3435973838", expecting: "0") + self.divTest(lhs: "0", rhs: "2576980379", expecting: "0") + self.divTest(lhs: "0", rhs: "-2576980379", expecting: "0") + self.divTest(lhs: "0", rhs: "1717986920", expecting: "0") + self.divTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "0", rhs: "858993461", expecting: "0") + self.divTest(lhs: "0", rhs: "-858993461", expecting: "0") + self.divTest(lhs: "1", rhs: "1", expecting: "1") + self.divTest(lhs: "1", rhs: "-1", expecting: "-1") + self.divTest(lhs: "1", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "1", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "1", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "1", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "1", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "1", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "1", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "1", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "1", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "1", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "1", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "1", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "1", rhs: "3435973838", expecting: "0") + self.divTest(lhs: "1", rhs: "-3435973838", expecting: "0") + self.divTest(lhs: "1", rhs: "2576980379", expecting: "0") + self.divTest(lhs: "1", rhs: "-2576980379", expecting: "0") + self.divTest(lhs: "1", rhs: "1717986920", expecting: "0") + self.divTest(lhs: "1", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "1", rhs: "858993461", expecting: "0") + self.divTest(lhs: "1", rhs: "-858993461", expecting: "0") + self.divTest(lhs: "-1", rhs: "1", expecting: "-1") + self.divTest(lhs: "-1", rhs: "-1", expecting: "1") + self.divTest(lhs: "-1", rhs: "8589934592", expecting: "0") + self.divTest(lhs: "-1", rhs: "-8589934592", expecting: "0") + self.divTest(lhs: "-1", rhs: "7730941133", expecting: "0") + self.divTest(lhs: "-1", rhs: "-7730941133", expecting: "0") + self.divTest(lhs: "-1", rhs: "6871947674", expecting: "0") + self.divTest(lhs: "-1", rhs: "-6871947674", expecting: "0") + self.divTest(lhs: "-1", rhs: "6012954215", expecting: "0") + self.divTest(lhs: "-1", rhs: "-6012954215", expecting: "0") + self.divTest(lhs: "-1", rhs: "5153960756", expecting: "0") + self.divTest(lhs: "-1", rhs: "-5153960756", expecting: "0") + self.divTest(lhs: "-1", rhs: "4294967297", expecting: "0") + self.divTest(lhs: "-1", rhs: "-4294967297", expecting: "0") + self.divTest(lhs: "-1", rhs: "3435973838", expecting: "0") + self.divTest(lhs: "-1", rhs: "-3435973838", expecting: "0") + self.divTest(lhs: "-1", rhs: "2576980379", expecting: "0") + self.divTest(lhs: "-1", rhs: "-2576980379", expecting: "0") + self.divTest(lhs: "-1", rhs: "1717986920", expecting: "0") + self.divTest(lhs: "-1", rhs: "-1717986920", expecting: "0") + self.divTest(lhs: "-1", rhs: "858993461", expecting: "0") + self.divTest(lhs: "-1", rhs: "-858993461", expecting: "0") + self.divTest(lhs: "18446744073709551615", rhs: "1", expecting: "18446744073709551615") + self.divTest(lhs: "18446744073709551615", rhs: "-1", expecting: "-18446744073709551615") + self.divTest(lhs: "18446744073709551615", rhs: "8589934592", expecting: "2147483647") + self.divTest(lhs: "18446744073709551615", rhs: "-8589934592", expecting: "-2147483647") + self.divTest(lhs: "18446744073709551615", rhs: "7730941133", expecting: "2386092942") + self.divTest(lhs: "18446744073709551615", rhs: "-7730941133", expecting: "-2386092942") + self.divTest(lhs: "18446744073709551615", rhs: "6871947674", expecting: "2684354559") + self.divTest(lhs: "18446744073709551615", rhs: "-6871947674", expecting: "-2684354559") + self.divTest(lhs: "18446744073709551615", rhs: "6012954215", expecting: "3067833782") + self.divTest(lhs: "18446744073709551615", rhs: "-6012954215", expecting: "-3067833782") + self.divTest(lhs: "18446744073709551615", rhs: "5153960756", expecting: "3579139412") + self.divTest(lhs: "18446744073709551615", rhs: "-5153960756", expecting: "-3579139412") + self.divTest(lhs: "18446744073709551615", rhs: "4294967297", expecting: "4294967295") + self.divTest(lhs: "18446744073709551615", rhs: "-4294967297", expecting: "-4294967295") + self.divTest(lhs: "18446744073709551615", rhs: "3435973838", expecting: "5368709118") + self.divTest(lhs: "18446744073709551615", rhs: "-3435973838", expecting: "-5368709118") + self.divTest(lhs: "18446744073709551615", rhs: "2576980379", expecting: "7158278822") + self.divTest(lhs: "18446744073709551615", rhs: "-2576980379", expecting: "-7158278822") + self.divTest(lhs: "18446744073709551615", rhs: "1717986920", expecting: "10737418230") + self.divTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "-10737418230") + self.divTest(lhs: "18446744073709551615", rhs: "858993461", expecting: "21474836435") + self.divTest(lhs: "18446744073709551615", rhs: "-858993461", expecting: "-21474836435") + self.divTest(lhs: "-18446744073709551615", rhs: "1", expecting: "-18446744073709551615") + self.divTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "18446744073709551615") + self.divTest(lhs: "-18446744073709551615", rhs: "8589934592", expecting: "-2147483647") + self.divTest(lhs: "-18446744073709551615", rhs: "-8589934592", expecting: "2147483647") + self.divTest(lhs: "-18446744073709551615", rhs: "7730941133", expecting: "-2386092942") + self.divTest(lhs: "-18446744073709551615", rhs: "-7730941133", expecting: "2386092942") + self.divTest(lhs: "-18446744073709551615", rhs: "6871947674", expecting: "-2684354559") + self.divTest(lhs: "-18446744073709551615", rhs: "-6871947674", expecting: "2684354559") + self.divTest(lhs: "-18446744073709551615", rhs: "6012954215", expecting: "-3067833782") + self.divTest(lhs: "-18446744073709551615", rhs: "-6012954215", expecting: "3067833782") + self.divTest(lhs: "-18446744073709551615", rhs: "5153960756", expecting: "-3579139412") + self.divTest(lhs: "-18446744073709551615", rhs: "-5153960756", expecting: "3579139412") + self.divTest(lhs: "-18446744073709551615", rhs: "4294967297", expecting: "-4294967295") + self.divTest(lhs: "-18446744073709551615", rhs: "-4294967297", expecting: "4294967295") + self.divTest(lhs: "-18446744073709551615", rhs: "3435973838", expecting: "-5368709118") + self.divTest(lhs: "-18446744073709551615", rhs: "-3435973838", expecting: "5368709118") + self.divTest(lhs: "-18446744073709551615", rhs: "2576980379", expecting: "-7158278822") + self.divTest(lhs: "-18446744073709551615", rhs: "-2576980379", expecting: "7158278822") + self.divTest(lhs: "-18446744073709551615", rhs: "1717986920", expecting: "-10737418230") + self.divTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "10737418230") + self.divTest(lhs: "-18446744073709551615", rhs: "858993461", expecting: "-21474836435") + self.divTest(lhs: "-18446744073709551615", rhs: "-858993461", expecting: "21474836435") + self.divTest(lhs: "18446744073709551617", rhs: "1", expecting: "18446744073709551617") + self.divTest(lhs: "18446744073709551617", rhs: "-1", expecting: "-18446744073709551617") + self.divTest(lhs: "18446744073709551617", rhs: "8589934592", expecting: "2147483648") + self.divTest(lhs: "18446744073709551617", rhs: "-8589934592", expecting: "-2147483648") + self.divTest(lhs: "18446744073709551617", rhs: "7730941133", expecting: "2386092942") + self.divTest(lhs: "18446744073709551617", rhs: "-7730941133", expecting: "-2386092942") + self.divTest(lhs: "18446744073709551617", rhs: "6871947674", expecting: "2684354559") + self.divTest(lhs: "18446744073709551617", rhs: "-6871947674", expecting: "-2684354559") + self.divTest(lhs: "18446744073709551617", rhs: "6012954215", expecting: "3067833782") + self.divTest(lhs: "18446744073709551617", rhs: "-6012954215", expecting: "-3067833782") + self.divTest(lhs: "18446744073709551617", rhs: "5153960756", expecting: "3579139412") + self.divTest(lhs: "18446744073709551617", rhs: "-5153960756", expecting: "-3579139412") + self.divTest(lhs: "18446744073709551617", rhs: "4294967297", expecting: "4294967295") + self.divTest(lhs: "18446744073709551617", rhs: "-4294967297", expecting: "-4294967295") + self.divTest(lhs: "18446744073709551617", rhs: "3435973838", expecting: "5368709118") + self.divTest(lhs: "18446744073709551617", rhs: "-3435973838", expecting: "-5368709118") + self.divTest(lhs: "18446744073709551617", rhs: "2576980379", expecting: "7158278822") + self.divTest(lhs: "18446744073709551617", rhs: "-2576980379", expecting: "-7158278822") + self.divTest(lhs: "18446744073709551617", rhs: "1717986920", expecting: "10737418230") + self.divTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "-10737418230") + self.divTest(lhs: "18446744073709551617", rhs: "858993461", expecting: "21474836435") + self.divTest(lhs: "18446744073709551617", rhs: "-858993461", expecting: "-21474836435") + self.divTest(lhs: "-18446744073709551617", rhs: "1", expecting: "-18446744073709551617") + self.divTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "18446744073709551617") + self.divTest(lhs: "-18446744073709551617", rhs: "8589934592", expecting: "-2147483648") + self.divTest(lhs: "-18446744073709551617", rhs: "-8589934592", expecting: "2147483648") + self.divTest(lhs: "-18446744073709551617", rhs: "7730941133", expecting: "-2386092942") + self.divTest(lhs: "-18446744073709551617", rhs: "-7730941133", expecting: "2386092942") + self.divTest(lhs: "-18446744073709551617", rhs: "6871947674", expecting: "-2684354559") + self.divTest(lhs: "-18446744073709551617", rhs: "-6871947674", expecting: "2684354559") + self.divTest(lhs: "-18446744073709551617", rhs: "6012954215", expecting: "-3067833782") + self.divTest(lhs: "-18446744073709551617", rhs: "-6012954215", expecting: "3067833782") + self.divTest(lhs: "-18446744073709551617", rhs: "5153960756", expecting: "-3579139412") + self.divTest(lhs: "-18446744073709551617", rhs: "-5153960756", expecting: "3579139412") + self.divTest(lhs: "-18446744073709551617", rhs: "4294967297", expecting: "-4294967295") + self.divTest(lhs: "-18446744073709551617", rhs: "-4294967297", expecting: "4294967295") + self.divTest(lhs: "-18446744073709551617", rhs: "3435973838", expecting: "-5368709118") + self.divTest(lhs: "-18446744073709551617", rhs: "-3435973838", expecting: "5368709118") + self.divTest(lhs: "-18446744073709551617", rhs: "2576980379", expecting: "-7158278822") + self.divTest(lhs: "-18446744073709551617", rhs: "-2576980379", expecting: "7158278822") + self.divTest(lhs: "-18446744073709551617", rhs: "1717986920", expecting: "-10737418230") + self.divTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "10737418230") + self.divTest(lhs: "-18446744073709551617", rhs: "858993461", expecting: "-21474836435") + self.divTest(lhs: "-18446744073709551617", rhs: "-858993461", expecting: "21474836435") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "340282366920938463481821351505477763074") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "-340282366920938463481821351505477763074") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "8589934592", expecting: "39614081257132168798919458816") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "-39614081257132168798919458816") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "7730941133", expecting: "44015645840119277426377649732") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "-44015645840119277426377649732") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "6871947674", expecting: "49517601568532907237299978239") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "-49517601568532907237299978239") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "6012954215", expecting: "56591544647398992956047537691") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "-56591544647398992956047537691") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "5153960756", expecting: "66023468751638756847728964645") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "-66023468751638756847728964645") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "4294967297", expecting: "79228162495817593528424333310") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "-79228162495817593528424333310") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "3435973838", expecting: "99035203108242776871172833273") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "-99035203108242776871172833273") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "2576980379", expecting: "132046937452036557970945013355") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "-132046937452036557970945013355") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986920", expecting: "198070406101193403429300469590") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-198070406101193403429300469590") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "858993461", expecting: "396140811741218206411726516630") + self.divTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993461", expecting: "-396140811741218206411726516630") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "-340282366920938463481821351505477763074") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "340282366920938463481821351505477763074") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "8589934592", expecting: "-39614081257132168798919458816") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "39614081257132168798919458816") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "7730941133", expecting: "-44015645840119277426377649732") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "44015645840119277426377649732") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "6871947674", expecting: "-49517601568532907237299978239") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "49517601568532907237299978239") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "6012954215", expecting: "-56591544647398992956047537691") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "56591544647398992956047537691") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "5153960756", expecting: "-66023468751638756847728964645") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "66023468751638756847728964645") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "4294967297", expecting: "-79228162495817593528424333310") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "79228162495817593528424333310") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "3435973838", expecting: "-99035203108242776871172833273") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "99035203108242776871172833273") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "2576980379", expecting: "-132046937452036557970945013355") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "132046937452036557970945013355") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986920", expecting: "-198070406101193403429300469590") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "198070406101193403429300469590") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993461", expecting: "-396140811741218206411726516630") + self.divTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993461", expecting: "396140811741218206411726516630") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "8589934592", expecting: "730750818665451459181070578872405847419362738176") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "-730750818665451459181070578872405847419362738176") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "811945354051718759157230560825374136633030538334") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "-811945354051718759157230560825374136633030538334") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "913438523278645204148036438766623726042454425600") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "-913438523278645204148036438766623726042454425600") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "1043929740846476870191228315722264873924482046842") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "-1043929740846476870191228315722264873924482046842") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "1217918030920040005930606693399033584533304101715") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "-1217918030920040005930606693399033584533304101715") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "1461501636990620551520430856740361192792257462270") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "-1461501636990620551520430856740361192792257462270") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "1826877046025599210198746035111558187309649100783") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "-1826877046025599210198746035111558187309649100783") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "2435836060894851215518841230979175935359598605331") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "-2435836060894851215518841230979175935359598605331") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "3653754089924433629865094756978442736345546749130") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-3653754089924433629865094756978442736345546749130") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "7307508171341808112455880682250668894219507819110") + self.divTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "-7307508171341808112455880682250668894219507819110") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "8589934592", expecting: "-730750818665451459181070578872405847419362738176") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "730750818665451459181070578872405847419362738176") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "-811945354051718759157230560825374136633030538334") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "811945354051718759157230560825374136633030538334") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "-913438523278645204148036438766623726042454425600") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "913438523278645204148036438766623726042454425600") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "-1043929740846476870191228315722264873924482046842") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "1043929740846476870191228315722264873924482046842") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "-1217918030920040005930606693399033584533304101715") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "1217918030920040005930606693399033584533304101715") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "-1461501636990620551520430856740361192792257462270") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "1461501636990620551520430856740361192792257462270") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "-1826877046025599210198746035111558187309649100783") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "1826877046025599210198746035111558187309649100783") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "-2435836060894851215518841230979175935359598605331") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "2435836060894851215518841230979175935359598605331") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "-3653754089924433629865094756978442736345546749130") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "3653754089924433629865094756978442736345546749130") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "-7307508171341808112455880682250668894219507819110") + self.divTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "7307508171341808112455880682250668894219507819110") + self.divTest(lhs: "18446744073709551623", rhs: "1", expecting: "18446744073709551623") + self.divTest(lhs: "18446744073709551623", rhs: "-1", expecting: "-18446744073709551623") + self.divTest(lhs: "18446744073709551623", rhs: "8589934592", expecting: "2147483648") + self.divTest(lhs: "18446744073709551623", rhs: "-8589934592", expecting: "-2147483648") + self.divTest(lhs: "18446744073709551623", rhs: "7730941133", expecting: "2386092942") + self.divTest(lhs: "18446744073709551623", rhs: "-7730941133", expecting: "-2386092942") + self.divTest(lhs: "18446744073709551623", rhs: "6871947674", expecting: "2684354559") + self.divTest(lhs: "18446744073709551623", rhs: "-6871947674", expecting: "-2684354559") + self.divTest(lhs: "18446744073709551623", rhs: "6012954215", expecting: "3067833782") + self.divTest(lhs: "18446744073709551623", rhs: "-6012954215", expecting: "-3067833782") + self.divTest(lhs: "18446744073709551623", rhs: "5153960756", expecting: "3579139412") + self.divTest(lhs: "18446744073709551623", rhs: "-5153960756", expecting: "-3579139412") + self.divTest(lhs: "18446744073709551623", rhs: "4294967297", expecting: "4294967295") + self.divTest(lhs: "18446744073709551623", rhs: "-4294967297", expecting: "-4294967295") + self.divTest(lhs: "18446744073709551623", rhs: "3435973838", expecting: "5368709118") + self.divTest(lhs: "18446744073709551623", rhs: "-3435973838", expecting: "-5368709118") + self.divTest(lhs: "18446744073709551623", rhs: "2576980379", expecting: "7158278822") + self.divTest(lhs: "18446744073709551623", rhs: "-2576980379", expecting: "-7158278822") + self.divTest(lhs: "18446744073709551623", rhs: "1717986920", expecting: "10737418230") + self.divTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "-10737418230") + self.divTest(lhs: "18446744073709551623", rhs: "858993461", expecting: "21474836435") + self.divTest(lhs: "18446744073709551623", rhs: "-858993461", expecting: "-21474836435") + self.divTest(lhs: "-18446744073709551623", rhs: "1", expecting: "-18446744073709551623") + self.divTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "18446744073709551623") + self.divTest(lhs: "-18446744073709551623", rhs: "8589934592", expecting: "-2147483648") + self.divTest(lhs: "-18446744073709551623", rhs: "-8589934592", expecting: "2147483648") + self.divTest(lhs: "-18446744073709551623", rhs: "7730941133", expecting: "-2386092942") + self.divTest(lhs: "-18446744073709551623", rhs: "-7730941133", expecting: "2386092942") + self.divTest(lhs: "-18446744073709551623", rhs: "6871947674", expecting: "-2684354559") + self.divTest(lhs: "-18446744073709551623", rhs: "-6871947674", expecting: "2684354559") + self.divTest(lhs: "-18446744073709551623", rhs: "6012954215", expecting: "-3067833782") + self.divTest(lhs: "-18446744073709551623", rhs: "-6012954215", expecting: "3067833782") + self.divTest(lhs: "-18446744073709551623", rhs: "5153960756", expecting: "-3579139412") + self.divTest(lhs: "-18446744073709551623", rhs: "-5153960756", expecting: "3579139412") + self.divTest(lhs: "-18446744073709551623", rhs: "4294967297", expecting: "-4294967295") + self.divTest(lhs: "-18446744073709551623", rhs: "-4294967297", expecting: "4294967295") + self.divTest(lhs: "-18446744073709551623", rhs: "3435973838", expecting: "-5368709118") + self.divTest(lhs: "-18446744073709551623", rhs: "-3435973838", expecting: "5368709118") + self.divTest(lhs: "-18446744073709551623", rhs: "2576980379", expecting: "-7158278822") + self.divTest(lhs: "-18446744073709551623", rhs: "-2576980379", expecting: "7158278822") + self.divTest(lhs: "-18446744073709551623", rhs: "1717986920", expecting: "-10737418230") + self.divTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "10737418230") + self.divTest(lhs: "-18446744073709551623", rhs: "858993461", expecting: "-21474836435") + self.divTest(lhs: "-18446744073709551623", rhs: "-858993461", expecting: "21474836435") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "340282366920938463592501815947735072770") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "-340282366920938463592501815947735072770") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "8589934592", expecting: "39614081257132168811804360704") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "-39614081257132168811804360704") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "7730941133", expecting: "44015645840119277440694207385") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "-44015645840119277440694207385") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "6871947674", expecting: "49517601568532907253406105598") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "-49517601568532907253406105598") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "6012954215", expecting: "56591544647398992974454540387") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "-56591544647398992974454540387") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "5153960756", expecting: "66023468751638756869203801121") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "-66023468751638756869203801121") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "4294967297", expecting: "79228162495817593554194137080") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "-79228162495817593554194137080") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "3435973838", expecting: "99035203108242776903385087982") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "-99035203108242776903385087982") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "2576980379", expecting: "132046937452036558013894686292") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "-132046937452036558013894686292") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986920", expecting: "198070406101193403493724978970") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-198070406101193403493724978970") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "858993461", expecting: "396140811741218206540575535240") + self.divTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993461", expecting: "-396140811741218206540575535240") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "-340282366920938463592501815947735072770") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "340282366920938463592501815947735072770") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "8589934592", expecting: "-39614081257132168811804360704") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "39614081257132168811804360704") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "7730941133", expecting: "-44015645840119277440694207385") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "44015645840119277440694207385") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "6871947674", expecting: "-49517601568532907253406105598") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "49517601568532907253406105598") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "6012954215", expecting: "-56591544647398992974454540387") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "56591544647398992974454540387") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "5153960756", expecting: "-66023468751638756869203801121") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "66023468751638756869203801121") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "4294967297", expecting: "-79228162495817593554194137080") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "79228162495817593554194137080") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "3435973838", expecting: "-99035203108242776903385087982") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "99035203108242776903385087982") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "2576980379", expecting: "-132046937452036558013894686292") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "132046937452036558013894686292") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986920", expecting: "-198070406101193403493724978970") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "198070406101193403493724978970") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993461", expecting: "-396140811741218206540575535240") + self.divTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993461", expecting: "396140811741218206540575535240") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "8589934592", expecting: "730750818665451459418755066415198860187109687296") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "-730750818665451459418755066415198860187109687296") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "811945354051718759421324435866089801162663321420") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "-811945354051718759421324435866089801162663321420") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "913438523278645204445142048177821169434042040321") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "-913438523278645204445142048177821169434042040321") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "1043929740846476870530777583606658831623953267603") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "-1043929740846476870530777583606658831623953267603") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "1217918030920040006326747505908866125576728216632") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "-1217918030920040006326747505908866125576728216632") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "1461501636990620551995799831715266753911263854590") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "-1461501636990620551995799831715266753911263854590") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "1826877046025599210792957253761014848472261591009") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "-1826877046025599210792957253761014848472261591009") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "2435836060894851216311122855691395283099369339591") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "-2435836060894851216311122855691395283099369339591") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "3653754089924433631053517193585603156792500547910") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-3653754089924433631053517193585603156792500547910") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "7307508171341808114832725552697978132432168881670") + self.divTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "-7307508171341808114832725552697978132432168881670") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "8589934592", expecting: "-730750818665451459418755066415198860187109687296") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "730750818665451459418755066415198860187109687296") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "-811945354051718759421324435866089801162663321420") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "811945354051718759421324435866089801162663321420") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "-913438523278645204445142048177821169434042040321") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "913438523278645204445142048177821169434042040321") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "-1043929740846476870530777583606658831623953267603") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "1043929740846476870530777583606658831623953267603") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "-1217918030920040006326747505908866125576728216632") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "1217918030920040006326747505908866125576728216632") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "-1461501636990620551995799831715266753911263854590") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "1461501636990620551995799831715266753911263854590") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "-1826877046025599210792957253761014848472261591009") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "1826877046025599210792957253761014848472261591009") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "-2435836060894851216311122855691395283099369339591") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "2435836060894851216311122855691395283099369339591") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "-3653754089924433631053517193585603156792500547910") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "3653754089924433631053517193585603156792500547910") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "-7307508171341808114832725552697978132432168881670") + self.divTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "7307508171341808114832725552697978132432168881670") + self.divTest(lhs: "18446744073709551629", rhs: "1", expecting: "18446744073709551629") + self.divTest(lhs: "18446744073709551629", rhs: "-1", expecting: "-18446744073709551629") + self.divTest(lhs: "18446744073709551629", rhs: "8589934592", expecting: "2147483648") + self.divTest(lhs: "18446744073709551629", rhs: "-8589934592", expecting: "-2147483648") + self.divTest(lhs: "18446744073709551629", rhs: "7730941133", expecting: "2386092942") + self.divTest(lhs: "18446744073709551629", rhs: "-7730941133", expecting: "-2386092942") + self.divTest(lhs: "18446744073709551629", rhs: "6871947674", expecting: "2684354559") + self.divTest(lhs: "18446744073709551629", rhs: "-6871947674", expecting: "-2684354559") + self.divTest(lhs: "18446744073709551629", rhs: "6012954215", expecting: "3067833782") + self.divTest(lhs: "18446744073709551629", rhs: "-6012954215", expecting: "-3067833782") + self.divTest(lhs: "18446744073709551629", rhs: "5153960756", expecting: "3579139412") + self.divTest(lhs: "18446744073709551629", rhs: "-5153960756", expecting: "-3579139412") + self.divTest(lhs: "18446744073709551629", rhs: "4294967297", expecting: "4294967295") + self.divTest(lhs: "18446744073709551629", rhs: "-4294967297", expecting: "-4294967295") + self.divTest(lhs: "18446744073709551629", rhs: "3435973838", expecting: "5368709118") + self.divTest(lhs: "18446744073709551629", rhs: "-3435973838", expecting: "-5368709118") + self.divTest(lhs: "18446744073709551629", rhs: "2576980379", expecting: "7158278822") + self.divTest(lhs: "18446744073709551629", rhs: "-2576980379", expecting: "-7158278822") + self.divTest(lhs: "18446744073709551629", rhs: "1717986920", expecting: "10737418230") + self.divTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "-10737418230") + self.divTest(lhs: "18446744073709551629", rhs: "858993461", expecting: "21474836435") + self.divTest(lhs: "18446744073709551629", rhs: "-858993461", expecting: "-21474836435") + self.divTest(lhs: "-18446744073709551629", rhs: "1", expecting: "-18446744073709551629") + self.divTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "18446744073709551629") + self.divTest(lhs: "-18446744073709551629", rhs: "8589934592", expecting: "-2147483648") + self.divTest(lhs: "-18446744073709551629", rhs: "-8589934592", expecting: "2147483648") + self.divTest(lhs: "-18446744073709551629", rhs: "7730941133", expecting: "-2386092942") + self.divTest(lhs: "-18446744073709551629", rhs: "-7730941133", expecting: "2386092942") + self.divTest(lhs: "-18446744073709551629", rhs: "6871947674", expecting: "-2684354559") + self.divTest(lhs: "-18446744073709551629", rhs: "-6871947674", expecting: "2684354559") + self.divTest(lhs: "-18446744073709551629", rhs: "6012954215", expecting: "-3067833782") + self.divTest(lhs: "-18446744073709551629", rhs: "-6012954215", expecting: "3067833782") + self.divTest(lhs: "-18446744073709551629", rhs: "5153960756", expecting: "-3579139412") + self.divTest(lhs: "-18446744073709551629", rhs: "-5153960756", expecting: "3579139412") + self.divTest(lhs: "-18446744073709551629", rhs: "4294967297", expecting: "-4294967295") + self.divTest(lhs: "-18446744073709551629", rhs: "-4294967297", expecting: "4294967295") + self.divTest(lhs: "-18446744073709551629", rhs: "3435973838", expecting: "-5368709118") + self.divTest(lhs: "-18446744073709551629", rhs: "-3435973838", expecting: "5368709118") + self.divTest(lhs: "-18446744073709551629", rhs: "2576980379", expecting: "-7158278822") + self.divTest(lhs: "-18446744073709551629", rhs: "-2576980379", expecting: "7158278822") + self.divTest(lhs: "-18446744073709551629", rhs: "1717986920", expecting: "-10737418230") + self.divTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "10737418230") + self.divTest(lhs: "-18446744073709551629", rhs: "858993461", expecting: "-21474836435") + self.divTest(lhs: "-18446744073709551629", rhs: "-858993461", expecting: "21474836435") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "340282366920938463703182280389992382466") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "-340282366920938463703182280389992382466") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "8589934592", expecting: "39614081257132168824689262592") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "-39614081257132168824689262592") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "7730941133", expecting: "44015645840119277455010765037") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "-44015645840119277455010765037") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "6871947674", expecting: "49517601568532907269512232957") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "-49517601568532907269512232957") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "6012954215", expecting: "56591544647398992992861543082") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "-56591544647398992992861543082") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "5153960756", expecting: "66023468751638756890678637598") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "-66023468751638756890678637598") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "4294967297", expecting: "79228162495817593579963940850") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "-79228162495817593579963940850") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "3435973838", expecting: "99035203108242776935597342691") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "-99035203108242776935597342691") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "2576980379", expecting: "132046937452036558056844359229") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "-132046937452036558056844359229") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986920", expecting: "198070406101193403558149488350") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-198070406101193403558149488350") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "858993461", expecting: "396140811741218206669424553850") + self.divTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993461", expecting: "-396140811741218206669424553850") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "-340282366920938463703182280389992382466") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "340282366920938463703182280389992382466") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "8589934592", expecting: "-39614081257132168824689262592") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "39614081257132168824689262592") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "7730941133", expecting: "-44015645840119277455010765037") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "44015645840119277455010765037") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "6871947674", expecting: "-49517601568532907269512232957") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "49517601568532907269512232957") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "6012954215", expecting: "-56591544647398992992861543082") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "56591544647398992992861543082") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "5153960756", expecting: "-66023468751638756890678637598") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "66023468751638756890678637598") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "4294967297", expecting: "-79228162495817593579963940850") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "79228162495817593579963940850") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "3435973838", expecting: "-99035203108242776935597342691") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "99035203108242776935597342691") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "2576980379", expecting: "-132046937452036558056844359229") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "132046937452036558056844359229") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986920", expecting: "-198070406101193403558149488350") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "198070406101193403558149488350") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993461", expecting: "-396140811741218206669424553850") + self.divTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993461", expecting: "396140811741218206669424553850") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "8589934592", expecting: "730750818665451459656439553957991872954856636416") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "-730750818665451459656439553957991872954856636416") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "811945354051718759685418310906805465692296104507") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "-811945354051718759685418310906805465692296104507") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "913438523278645204742247657589018612825629655041") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "-913438523278645204742247657589018612825629655041") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "1043929740846476870870326851491052789323424488365") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "-1043929740846476870870326851491052789323424488365") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "1217918030920040006722888318418698666620152331549") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "-1217918030920040006722888318418698666620152331549") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "1461501636990620552471168806690172315030270246910") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "-1461501636990620552471168806690172315030270246910") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "1826877046025599211387168472410471509634874081235") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "-1826877046025599211387168472410471509634874081235") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "2435836060894851217103404480403614630839140073852") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "-2435836060894851217103404480403614630839140073852") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "3653754089924433632241939630192763577239454346690") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-3653754089924433632241939630192763577239454346690") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "7307508171341808117209570423145287370644829944230") + self.divTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "-7307508171341808117209570423145287370644829944230") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "8589934592", expecting: "-730750818665451459656439553957991872954856636416") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "730750818665451459656439553957991872954856636416") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "-811945354051718759685418310906805465692296104507") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "811945354051718759685418310906805465692296104507") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "-913438523278645204742247657589018612825629655041") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "913438523278645204742247657589018612825629655041") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "-1043929740846476870870326851491052789323424488365") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "1043929740846476870870326851491052789323424488365") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "-1217918030920040006722888318418698666620152331549") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "1217918030920040006722888318418698666620152331549") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "-1461501636990620552471168806690172315030270246910") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "1461501636990620552471168806690172315030270246910") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "-1826877046025599211387168472410471509634874081235") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "1826877046025599211387168472410471509634874081235") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "-2435836060894851217103404480403614630839140073852") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "2435836060894851217103404480403614630839140073852") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "-3653754089924433632241939630192763577239454346690") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "3653754089924433632241939630192763577239454346690") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "-7307508171341808117209570423145287370644829944230") + self.divTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "7307508171341808117209570423145287370644829944230") + self.divTest(lhs: "18446744073709551635", rhs: "1", expecting: "18446744073709551635") + self.divTest(lhs: "18446744073709551635", rhs: "-1", expecting: "-18446744073709551635") + self.divTest(lhs: "18446744073709551635", rhs: "8589934592", expecting: "2147483648") + self.divTest(lhs: "18446744073709551635", rhs: "-8589934592", expecting: "-2147483648") + self.divTest(lhs: "18446744073709551635", rhs: "7730941133", expecting: "2386092942") + self.divTest(lhs: "18446744073709551635", rhs: "-7730941133", expecting: "-2386092942") + self.divTest(lhs: "18446744073709551635", rhs: "6871947674", expecting: "2684354559") + self.divTest(lhs: "18446744073709551635", rhs: "-6871947674", expecting: "-2684354559") + self.divTest(lhs: "18446744073709551635", rhs: "6012954215", expecting: "3067833782") + self.divTest(lhs: "18446744073709551635", rhs: "-6012954215", expecting: "-3067833782") + self.divTest(lhs: "18446744073709551635", rhs: "5153960756", expecting: "3579139412") + self.divTest(lhs: "18446744073709551635", rhs: "-5153960756", expecting: "-3579139412") + self.divTest(lhs: "18446744073709551635", rhs: "4294967297", expecting: "4294967295") + self.divTest(lhs: "18446744073709551635", rhs: "-4294967297", expecting: "-4294967295") + self.divTest(lhs: "18446744073709551635", rhs: "3435973838", expecting: "5368709118") + self.divTest(lhs: "18446744073709551635", rhs: "-3435973838", expecting: "-5368709118") + self.divTest(lhs: "18446744073709551635", rhs: "2576980379", expecting: "7158278822") + self.divTest(lhs: "18446744073709551635", rhs: "-2576980379", expecting: "-7158278822") + self.divTest(lhs: "18446744073709551635", rhs: "1717986920", expecting: "10737418230") + self.divTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "-10737418230") + self.divTest(lhs: "18446744073709551635", rhs: "858993461", expecting: "21474836435") + self.divTest(lhs: "18446744073709551635", rhs: "-858993461", expecting: "-21474836435") + self.divTest(lhs: "-18446744073709551635", rhs: "1", expecting: "-18446744073709551635") + self.divTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "18446744073709551635") + self.divTest(lhs: "-18446744073709551635", rhs: "8589934592", expecting: "-2147483648") + self.divTest(lhs: "-18446744073709551635", rhs: "-8589934592", expecting: "2147483648") + self.divTest(lhs: "-18446744073709551635", rhs: "7730941133", expecting: "-2386092942") + self.divTest(lhs: "-18446744073709551635", rhs: "-7730941133", expecting: "2386092942") + self.divTest(lhs: "-18446744073709551635", rhs: "6871947674", expecting: "-2684354559") + self.divTest(lhs: "-18446744073709551635", rhs: "-6871947674", expecting: "2684354559") + self.divTest(lhs: "-18446744073709551635", rhs: "6012954215", expecting: "-3067833782") + self.divTest(lhs: "-18446744073709551635", rhs: "-6012954215", expecting: "3067833782") + self.divTest(lhs: "-18446744073709551635", rhs: "5153960756", expecting: "-3579139412") + self.divTest(lhs: "-18446744073709551635", rhs: "-5153960756", expecting: "3579139412") + self.divTest(lhs: "-18446744073709551635", rhs: "4294967297", expecting: "-4294967295") + self.divTest(lhs: "-18446744073709551635", rhs: "-4294967297", expecting: "4294967295") + self.divTest(lhs: "-18446744073709551635", rhs: "3435973838", expecting: "-5368709118") + self.divTest(lhs: "-18446744073709551635", rhs: "-3435973838", expecting: "5368709118") + self.divTest(lhs: "-18446744073709551635", rhs: "2576980379", expecting: "-7158278822") + self.divTest(lhs: "-18446744073709551635", rhs: "-2576980379", expecting: "7158278822") + self.divTest(lhs: "-18446744073709551635", rhs: "1717986920", expecting: "-10737418230") + self.divTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "10737418230") + self.divTest(lhs: "-18446744073709551635", rhs: "858993461", expecting: "-21474836435") + self.divTest(lhs: "-18446744073709551635", rhs: "-858993461", expecting: "21474836435") + } + + func test_div_big_big() { + 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_int_int() { + self.modTest(lhs: "0", rhs: "1", expecting: "0") + self.modTest(lhs: "0", rhs: "-1", expecting: "0") + self.modTest(lhs: "0", rhs: "8589934592", expecting: "0") + self.modTest(lhs: "0", rhs: "-8589934592", expecting: "0") + self.modTest(lhs: "0", rhs: "7730941133", expecting: "0") + self.modTest(lhs: "0", rhs: "-7730941133", expecting: "0") + self.modTest(lhs: "0", rhs: "6871947674", expecting: "0") + self.modTest(lhs: "0", rhs: "-6871947674", expecting: "0") + self.modTest(lhs: "0", rhs: "6012954215", expecting: "0") + self.modTest(lhs: "0", rhs: "-6012954215", expecting: "0") + self.modTest(lhs: "0", rhs: "5153960756", expecting: "0") + self.modTest(lhs: "0", rhs: "-5153960756", expecting: "0") + self.modTest(lhs: "0", rhs: "4294967297", expecting: "0") + self.modTest(lhs: "0", rhs: "-4294967297", expecting: "0") + self.modTest(lhs: "0", rhs: "3435973838", expecting: "0") + self.modTest(lhs: "0", rhs: "-3435973838", expecting: "0") + self.modTest(lhs: "0", rhs: "2576980379", expecting: "0") + self.modTest(lhs: "0", rhs: "-2576980379", expecting: "0") + self.modTest(lhs: "0", rhs: "1717986920", expecting: "0") + self.modTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.modTest(lhs: "0", rhs: "858993461", expecting: "0") + self.modTest(lhs: "0", rhs: "-858993461", expecting: "0") + self.modTest(lhs: "1", rhs: "1", expecting: "0") + self.modTest(lhs: "1", rhs: "-1", expecting: "0") + self.modTest(lhs: "1", rhs: "8589934592", expecting: "1") + self.modTest(lhs: "1", rhs: "-8589934592", expecting: "1") + self.modTest(lhs: "1", rhs: "7730941133", expecting: "1") + self.modTest(lhs: "1", rhs: "-7730941133", expecting: "1") + self.modTest(lhs: "1", rhs: "6871947674", expecting: "1") + self.modTest(lhs: "1", rhs: "-6871947674", expecting: "1") + self.modTest(lhs: "1", rhs: "6012954215", expecting: "1") + self.modTest(lhs: "1", rhs: "-6012954215", expecting: "1") + self.modTest(lhs: "1", rhs: "5153960756", expecting: "1") + self.modTest(lhs: "1", rhs: "-5153960756", expecting: "1") + self.modTest(lhs: "1", rhs: "4294967297", expecting: "1") + self.modTest(lhs: "1", rhs: "-4294967297", expecting: "1") + self.modTest(lhs: "1", rhs: "3435973838", expecting: "1") + self.modTest(lhs: "1", rhs: "-3435973838", expecting: "1") + self.modTest(lhs: "1", rhs: "2576980379", expecting: "1") + self.modTest(lhs: "1", rhs: "-2576980379", expecting: "1") + self.modTest(lhs: "1", rhs: "1717986920", expecting: "1") + self.modTest(lhs: "1", rhs: "-1717986920", expecting: "1") + self.modTest(lhs: "1", rhs: "858993461", expecting: "1") + self.modTest(lhs: "1", rhs: "-858993461", expecting: "1") + self.modTest(lhs: "-1", rhs: "1", expecting: "0") + self.modTest(lhs: "-1", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1", rhs: "8589934592", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-8589934592", expecting: "-1") + self.modTest(lhs: "-1", rhs: "7730941133", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-7730941133", expecting: "-1") + self.modTest(lhs: "-1", rhs: "6871947674", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-6871947674", expecting: "-1") + self.modTest(lhs: "-1", rhs: "6012954215", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-6012954215", expecting: "-1") + self.modTest(lhs: "-1", rhs: "5153960756", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-5153960756", expecting: "-1") + self.modTest(lhs: "-1", rhs: "4294967297", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-4294967297", expecting: "-1") + self.modTest(lhs: "-1", rhs: "3435973838", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-3435973838", expecting: "-1") + self.modTest(lhs: "-1", rhs: "2576980379", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-2576980379", expecting: "-1") + self.modTest(lhs: "-1", rhs: "1717986920", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-1717986920", expecting: "-1") + self.modTest(lhs: "-1", rhs: "858993461", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-858993461", expecting: "-1") + self.modTest(lhs: "8589934592", rhs: "1", expecting: "0") + self.modTest(lhs: "8589934592", rhs: "-1", expecting: "0") + self.modTest(lhs: "8589934592", rhs: "8589934592", expecting: "0") + self.modTest(lhs: "8589934592", rhs: "-8589934592", expecting: "0") + self.modTest(lhs: "8589934592", rhs: "7730941133", expecting: "858993459") + self.modTest(lhs: "8589934592", rhs: "-7730941133", expecting: "858993459") + self.modTest(lhs: "8589934592", rhs: "6871947674", expecting: "1717986918") + self.modTest(lhs: "8589934592", rhs: "-6871947674", expecting: "1717986918") + self.modTest(lhs: "8589934592", rhs: "6012954215", expecting: "2576980377") + self.modTest(lhs: "8589934592", rhs: "-6012954215", expecting: "2576980377") + self.modTest(lhs: "8589934592", rhs: "5153960756", expecting: "3435973836") + self.modTest(lhs: "8589934592", rhs: "-5153960756", expecting: "3435973836") + self.modTest(lhs: "8589934592", rhs: "4294967297", expecting: "4294967295") + self.modTest(lhs: "8589934592", rhs: "-4294967297", expecting: "4294967295") + self.modTest(lhs: "8589934592", rhs: "3435973838", expecting: "1717986916") + self.modTest(lhs: "8589934592", rhs: "-3435973838", expecting: "1717986916") + self.modTest(lhs: "8589934592", rhs: "2576980379", expecting: "858993455") + self.modTest(lhs: "8589934592", rhs: "-2576980379", expecting: "858993455") + self.modTest(lhs: "8589934592", rhs: "1717986920", expecting: "1717986912") + self.modTest(lhs: "8589934592", rhs: "-1717986920", expecting: "1717986912") + self.modTest(lhs: "8589934592", rhs: "858993461", expecting: "858993443") + self.modTest(lhs: "8589934592", rhs: "-858993461", expecting: "858993443") + self.modTest(lhs: "-8589934592", rhs: "1", expecting: "0") + self.modTest(lhs: "-8589934592", rhs: "-1", expecting: "0") + self.modTest(lhs: "-8589934592", rhs: "8589934592", expecting: "0") + self.modTest(lhs: "-8589934592", rhs: "-8589934592", expecting: "0") + self.modTest(lhs: "-8589934592", rhs: "7730941133", expecting: "-858993459") + self.modTest(lhs: "-8589934592", rhs: "-7730941133", expecting: "-858993459") + self.modTest(lhs: "-8589934592", rhs: "6871947674", expecting: "-1717986918") + self.modTest(lhs: "-8589934592", rhs: "-6871947674", expecting: "-1717986918") + self.modTest(lhs: "-8589934592", rhs: "6012954215", expecting: "-2576980377") + self.modTest(lhs: "-8589934592", rhs: "-6012954215", expecting: "-2576980377") + self.modTest(lhs: "-8589934592", rhs: "5153960756", expecting: "-3435973836") + self.modTest(lhs: "-8589934592", rhs: "-5153960756", expecting: "-3435973836") + self.modTest(lhs: "-8589934592", rhs: "4294967297", expecting: "-4294967295") + self.modTest(lhs: "-8589934592", rhs: "-4294967297", expecting: "-4294967295") + self.modTest(lhs: "-8589934592", rhs: "3435973838", expecting: "-1717986916") + self.modTest(lhs: "-8589934592", rhs: "-3435973838", expecting: "-1717986916") + self.modTest(lhs: "-8589934592", rhs: "2576980379", expecting: "-858993455") + self.modTest(lhs: "-8589934592", rhs: "-2576980379", expecting: "-858993455") + self.modTest(lhs: "-8589934592", rhs: "1717986920", expecting: "-1717986912") + self.modTest(lhs: "-8589934592", rhs: "-1717986920", expecting: "-1717986912") + self.modTest(lhs: "-8589934592", rhs: "858993461", expecting: "-858993443") + self.modTest(lhs: "-8589934592", rhs: "-858993461", expecting: "-858993443") + self.modTest(lhs: "7730941133", rhs: "1", expecting: "0") + self.modTest(lhs: "7730941133", rhs: "-1", expecting: "0") + self.modTest(lhs: "7730941133", rhs: "8589934592", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "-8589934592", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "7730941133", expecting: "0") + self.modTest(lhs: "7730941133", rhs: "-7730941133", expecting: "0") + self.modTest(lhs: "7730941133", rhs: "6871947674", expecting: "858993459") + self.modTest(lhs: "7730941133", rhs: "-6871947674", expecting: "858993459") + self.modTest(lhs: "7730941133", rhs: "6012954215", expecting: "1717986918") + self.modTest(lhs: "7730941133", rhs: "-6012954215", expecting: "1717986918") + self.modTest(lhs: "7730941133", rhs: "5153960756", expecting: "2576980377") + self.modTest(lhs: "7730941133", rhs: "-5153960756", expecting: "2576980377") + self.modTest(lhs: "7730941133", rhs: "4294967297", expecting: "3435973836") + self.modTest(lhs: "7730941133", rhs: "-4294967297", expecting: "3435973836") + self.modTest(lhs: "7730941133", rhs: "3435973838", expecting: "858993457") + self.modTest(lhs: "7730941133", rhs: "-3435973838", expecting: "858993457") + self.modTest(lhs: "7730941133", rhs: "2576980379", expecting: "2576980375") + self.modTest(lhs: "7730941133", rhs: "-2576980379", expecting: "2576980375") + self.modTest(lhs: "7730941133", rhs: "1717986920", expecting: "858993453") + self.modTest(lhs: "7730941133", rhs: "-1717986920", expecting: "858993453") + self.modTest(lhs: "7730941133", rhs: "858993461", expecting: "858993445") + self.modTest(lhs: "7730941133", rhs: "-858993461", expecting: "858993445") + self.modTest(lhs: "-7730941133", rhs: "1", expecting: "0") + self.modTest(lhs: "-7730941133", rhs: "-1", expecting: "0") + self.modTest(lhs: "-7730941133", rhs: "8589934592", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "-8589934592", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "7730941133", expecting: "0") + self.modTest(lhs: "-7730941133", rhs: "-7730941133", expecting: "0") + self.modTest(lhs: "-7730941133", rhs: "6871947674", expecting: "-858993459") + self.modTest(lhs: "-7730941133", rhs: "-6871947674", expecting: "-858993459") + self.modTest(lhs: "-7730941133", rhs: "6012954215", expecting: "-1717986918") + self.modTest(lhs: "-7730941133", rhs: "-6012954215", expecting: "-1717986918") + self.modTest(lhs: "-7730941133", rhs: "5153960756", expecting: "-2576980377") + self.modTest(lhs: "-7730941133", rhs: "-5153960756", expecting: "-2576980377") + self.modTest(lhs: "-7730941133", rhs: "4294967297", expecting: "-3435973836") + self.modTest(lhs: "-7730941133", rhs: "-4294967297", expecting: "-3435973836") + self.modTest(lhs: "-7730941133", rhs: "3435973838", expecting: "-858993457") + self.modTest(lhs: "-7730941133", rhs: "-3435973838", expecting: "-858993457") + self.modTest(lhs: "-7730941133", rhs: "2576980379", expecting: "-2576980375") + self.modTest(lhs: "-7730941133", rhs: "-2576980379", expecting: "-2576980375") + self.modTest(lhs: "-7730941133", rhs: "1717986920", expecting: "-858993453") + self.modTest(lhs: "-7730941133", rhs: "-1717986920", expecting: "-858993453") + self.modTest(lhs: "-7730941133", rhs: "858993461", expecting: "-858993445") + self.modTest(lhs: "-7730941133", rhs: "-858993461", expecting: "-858993445") + self.modTest(lhs: "6871947674", rhs: "1", expecting: "0") + self.modTest(lhs: "6871947674", rhs: "-1", expecting: "0") + self.modTest(lhs: "6871947674", rhs: "8589934592", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "-8589934592", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "7730941133", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "-7730941133", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "6871947674", expecting: "0") + self.modTest(lhs: "6871947674", rhs: "-6871947674", expecting: "0") + self.modTest(lhs: "6871947674", rhs: "6012954215", expecting: "858993459") + self.modTest(lhs: "6871947674", rhs: "-6012954215", expecting: "858993459") + self.modTest(lhs: "6871947674", rhs: "5153960756", expecting: "1717986918") + self.modTest(lhs: "6871947674", rhs: "-5153960756", expecting: "1717986918") + self.modTest(lhs: "6871947674", rhs: "4294967297", expecting: "2576980377") + self.modTest(lhs: "6871947674", rhs: "-4294967297", expecting: "2576980377") + self.modTest(lhs: "6871947674", rhs: "3435973838", expecting: "3435973836") + self.modTest(lhs: "6871947674", rhs: "-3435973838", expecting: "3435973836") + self.modTest(lhs: "6871947674", rhs: "2576980379", expecting: "1717986916") + self.modTest(lhs: "6871947674", rhs: "-2576980379", expecting: "1717986916") + self.modTest(lhs: "6871947674", rhs: "1717986920", expecting: "1717986914") + self.modTest(lhs: "6871947674", rhs: "-1717986920", expecting: "1717986914") + self.modTest(lhs: "6871947674", rhs: "858993461", expecting: "858993447") + self.modTest(lhs: "6871947674", rhs: "-858993461", expecting: "858993447") + self.modTest(lhs: "-6871947674", rhs: "1", expecting: "0") + self.modTest(lhs: "-6871947674", rhs: "-1", expecting: "0") + self.modTest(lhs: "-6871947674", rhs: "8589934592", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "-8589934592", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "7730941133", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "-7730941133", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "6871947674", expecting: "0") + self.modTest(lhs: "-6871947674", rhs: "-6871947674", expecting: "0") + self.modTest(lhs: "-6871947674", rhs: "6012954215", expecting: "-858993459") + self.modTest(lhs: "-6871947674", rhs: "-6012954215", expecting: "-858993459") + self.modTest(lhs: "-6871947674", rhs: "5153960756", expecting: "-1717986918") + self.modTest(lhs: "-6871947674", rhs: "-5153960756", expecting: "-1717986918") + self.modTest(lhs: "-6871947674", rhs: "4294967297", expecting: "-2576980377") + self.modTest(lhs: "-6871947674", rhs: "-4294967297", expecting: "-2576980377") + self.modTest(lhs: "-6871947674", rhs: "3435973838", expecting: "-3435973836") + self.modTest(lhs: "-6871947674", rhs: "-3435973838", expecting: "-3435973836") + self.modTest(lhs: "-6871947674", rhs: "2576980379", expecting: "-1717986916") + self.modTest(lhs: "-6871947674", rhs: "-2576980379", expecting: "-1717986916") + self.modTest(lhs: "-6871947674", rhs: "1717986920", expecting: "-1717986914") + self.modTest(lhs: "-6871947674", rhs: "-1717986920", expecting: "-1717986914") + self.modTest(lhs: "-6871947674", rhs: "858993461", expecting: "-858993447") + self.modTest(lhs: "-6871947674", rhs: "-858993461", expecting: "-858993447") + self.modTest(lhs: "6012954215", rhs: "1", expecting: "0") + self.modTest(lhs: "6012954215", rhs: "-1", expecting: "0") + self.modTest(lhs: "6012954215", rhs: "8589934592", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-8589934592", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "7730941133", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-7730941133", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "6871947674", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-6871947674", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "6012954215", expecting: "0") + self.modTest(lhs: "6012954215", rhs: "-6012954215", expecting: "0") + self.modTest(lhs: "6012954215", rhs: "5153960756", expecting: "858993459") + self.modTest(lhs: "6012954215", rhs: "-5153960756", expecting: "858993459") + self.modTest(lhs: "6012954215", rhs: "4294967297", expecting: "1717986918") + self.modTest(lhs: "6012954215", rhs: "-4294967297", expecting: "1717986918") + self.modTest(lhs: "6012954215", rhs: "3435973838", expecting: "2576980377") + self.modTest(lhs: "6012954215", rhs: "-3435973838", expecting: "2576980377") + self.modTest(lhs: "6012954215", rhs: "2576980379", expecting: "858993457") + self.modTest(lhs: "6012954215", rhs: "-2576980379", expecting: "858993457") + self.modTest(lhs: "6012954215", rhs: "1717986920", expecting: "858993455") + self.modTest(lhs: "6012954215", rhs: "-1717986920", expecting: "858993455") + self.modTest(lhs: "6012954215", rhs: "858993461", expecting: "858993449") + self.modTest(lhs: "6012954215", rhs: "-858993461", expecting: "858993449") + self.modTest(lhs: "-6012954215", rhs: "1", expecting: "0") + self.modTest(lhs: "-6012954215", rhs: "-1", expecting: "0") + self.modTest(lhs: "-6012954215", rhs: "8589934592", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-8589934592", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "7730941133", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-7730941133", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "6871947674", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-6871947674", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "6012954215", expecting: "0") + self.modTest(lhs: "-6012954215", rhs: "-6012954215", expecting: "0") + self.modTest(lhs: "-6012954215", rhs: "5153960756", expecting: "-858993459") + self.modTest(lhs: "-6012954215", rhs: "-5153960756", expecting: "-858993459") + self.modTest(lhs: "-6012954215", rhs: "4294967297", expecting: "-1717986918") + self.modTest(lhs: "-6012954215", rhs: "-4294967297", expecting: "-1717986918") + self.modTest(lhs: "-6012954215", rhs: "3435973838", expecting: "-2576980377") + self.modTest(lhs: "-6012954215", rhs: "-3435973838", expecting: "-2576980377") + self.modTest(lhs: "-6012954215", rhs: "2576980379", expecting: "-858993457") + self.modTest(lhs: "-6012954215", rhs: "-2576980379", expecting: "-858993457") + self.modTest(lhs: "-6012954215", rhs: "1717986920", expecting: "-858993455") + self.modTest(lhs: "-6012954215", rhs: "-1717986920", expecting: "-858993455") + self.modTest(lhs: "-6012954215", rhs: "858993461", expecting: "-858993449") + self.modTest(lhs: "-6012954215", rhs: "-858993461", expecting: "-858993449") + self.modTest(lhs: "5153960756", rhs: "1", expecting: "0") + self.modTest(lhs: "5153960756", rhs: "-1", expecting: "0") + self.modTest(lhs: "5153960756", rhs: "8589934592", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-8589934592", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "7730941133", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-7730941133", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "6871947674", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-6871947674", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "6012954215", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-6012954215", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "5153960756", expecting: "0") + self.modTest(lhs: "5153960756", rhs: "-5153960756", expecting: "0") + self.modTest(lhs: "5153960756", rhs: "4294967297", expecting: "858993459") + self.modTest(lhs: "5153960756", rhs: "-4294967297", expecting: "858993459") + self.modTest(lhs: "5153960756", rhs: "3435973838", expecting: "1717986918") + self.modTest(lhs: "5153960756", rhs: "-3435973838", expecting: "1717986918") + self.modTest(lhs: "5153960756", rhs: "2576980379", expecting: "2576980377") + self.modTest(lhs: "5153960756", rhs: "-2576980379", expecting: "2576980377") + self.modTest(lhs: "5153960756", rhs: "1717986920", expecting: "1717986916") + self.modTest(lhs: "5153960756", rhs: "-1717986920", expecting: "1717986916") + self.modTest(lhs: "5153960756", rhs: "858993461", expecting: "858993451") + self.modTest(lhs: "5153960756", rhs: "-858993461", expecting: "858993451") + self.modTest(lhs: "-5153960756", rhs: "1", expecting: "0") + self.modTest(lhs: "-5153960756", rhs: "-1", expecting: "0") + self.modTest(lhs: "-5153960756", rhs: "8589934592", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-8589934592", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "7730941133", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-7730941133", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "6871947674", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-6871947674", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "6012954215", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-6012954215", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "5153960756", expecting: "0") + self.modTest(lhs: "-5153960756", rhs: "-5153960756", expecting: "0") + self.modTest(lhs: "-5153960756", rhs: "4294967297", expecting: "-858993459") + self.modTest(lhs: "-5153960756", rhs: "-4294967297", expecting: "-858993459") + self.modTest(lhs: "-5153960756", rhs: "3435973838", expecting: "-1717986918") + self.modTest(lhs: "-5153960756", rhs: "-3435973838", expecting: "-1717986918") + self.modTest(lhs: "-5153960756", rhs: "2576980379", expecting: "-2576980377") + self.modTest(lhs: "-5153960756", rhs: "-2576980379", expecting: "-2576980377") + self.modTest(lhs: "-5153960756", rhs: "1717986920", expecting: "-1717986916") + self.modTest(lhs: "-5153960756", rhs: "-1717986920", expecting: "-1717986916") + self.modTest(lhs: "-5153960756", rhs: "858993461", expecting: "-858993451") + self.modTest(lhs: "-5153960756", rhs: "-858993461", expecting: "-858993451") + self.modTest(lhs: "4294967297", rhs: "1", expecting: "0") + self.modTest(lhs: "4294967297", rhs: "-1", expecting: "0") + self.modTest(lhs: "4294967297", rhs: "8589934592", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-8589934592", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "7730941133", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-7730941133", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "6871947674", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-6871947674", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "6012954215", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-6012954215", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "5153960756", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-5153960756", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "4294967297", expecting: "0") + self.modTest(lhs: "4294967297", rhs: "-4294967297", expecting: "0") + self.modTest(lhs: "4294967297", rhs: "3435973838", expecting: "858993459") + self.modTest(lhs: "4294967297", rhs: "-3435973838", expecting: "858993459") + self.modTest(lhs: "4294967297", rhs: "2576980379", expecting: "1717986918") + self.modTest(lhs: "4294967297", rhs: "-2576980379", expecting: "1717986918") + self.modTest(lhs: "4294967297", rhs: "1717986920", expecting: "858993457") + self.modTest(lhs: "4294967297", rhs: "-1717986920", expecting: "858993457") + self.modTest(lhs: "4294967297", rhs: "858993461", expecting: "858993453") + self.modTest(lhs: "4294967297", rhs: "-858993461", expecting: "858993453") + self.modTest(lhs: "-4294967297", rhs: "1", expecting: "0") + self.modTest(lhs: "-4294967297", rhs: "-1", expecting: "0") + self.modTest(lhs: "-4294967297", rhs: "8589934592", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-8589934592", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "7730941133", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-7730941133", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "6871947674", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-6871947674", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "6012954215", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-6012954215", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "5153960756", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-5153960756", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "4294967297", expecting: "0") + self.modTest(lhs: "-4294967297", rhs: "-4294967297", expecting: "0") + self.modTest(lhs: "-4294967297", rhs: "3435973838", expecting: "-858993459") + self.modTest(lhs: "-4294967297", rhs: "-3435973838", expecting: "-858993459") + self.modTest(lhs: "-4294967297", rhs: "2576980379", expecting: "-1717986918") + self.modTest(lhs: "-4294967297", rhs: "-2576980379", expecting: "-1717986918") + self.modTest(lhs: "-4294967297", rhs: "1717986920", expecting: "-858993457") + self.modTest(lhs: "-4294967297", rhs: "-1717986920", expecting: "-858993457") + self.modTest(lhs: "-4294967297", rhs: "858993461", expecting: "-858993453") + self.modTest(lhs: "-4294967297", rhs: "-858993461", expecting: "-858993453") + self.modTest(lhs: "3435973838", rhs: "1", expecting: "0") + self.modTest(lhs: "3435973838", rhs: "-1", expecting: "0") + self.modTest(lhs: "3435973838", rhs: "8589934592", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-8589934592", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "7730941133", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-7730941133", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "6871947674", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-6871947674", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "6012954215", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-6012954215", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "5153960756", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-5153960756", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "4294967297", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-4294967297", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "3435973838", expecting: "0") + self.modTest(lhs: "3435973838", rhs: "-3435973838", expecting: "0") + self.modTest(lhs: "3435973838", rhs: "2576980379", expecting: "858993459") + self.modTest(lhs: "3435973838", rhs: "-2576980379", expecting: "858993459") + self.modTest(lhs: "3435973838", rhs: "1717986920", expecting: "1717986918") + self.modTest(lhs: "3435973838", rhs: "-1717986920", expecting: "1717986918") + self.modTest(lhs: "3435973838", rhs: "858993461", expecting: "858993455") + self.modTest(lhs: "3435973838", rhs: "-858993461", expecting: "858993455") + self.modTest(lhs: "-3435973838", rhs: "1", expecting: "0") + self.modTest(lhs: "-3435973838", rhs: "-1", expecting: "0") + self.modTest(lhs: "-3435973838", rhs: "8589934592", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-8589934592", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "7730941133", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-7730941133", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "6871947674", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-6871947674", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "6012954215", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-6012954215", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "5153960756", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-5153960756", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "4294967297", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-4294967297", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "3435973838", expecting: "0") + self.modTest(lhs: "-3435973838", rhs: "-3435973838", expecting: "0") + self.modTest(lhs: "-3435973838", rhs: "2576980379", expecting: "-858993459") + self.modTest(lhs: "-3435973838", rhs: "-2576980379", expecting: "-858993459") + self.modTest(lhs: "-3435973838", rhs: "1717986920", expecting: "-1717986918") + self.modTest(lhs: "-3435973838", rhs: "-1717986920", expecting: "-1717986918") + self.modTest(lhs: "-3435973838", rhs: "858993461", expecting: "-858993455") + self.modTest(lhs: "-3435973838", rhs: "-858993461", expecting: "-858993455") + self.modTest(lhs: "2576980379", rhs: "1", expecting: "0") + self.modTest(lhs: "2576980379", rhs: "-1", expecting: "0") + self.modTest(lhs: "2576980379", rhs: "8589934592", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-8589934592", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "7730941133", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-7730941133", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "6871947674", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-6871947674", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "6012954215", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-6012954215", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "5153960756", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-5153960756", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "4294967297", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-4294967297", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "3435973838", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-3435973838", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "2576980379", expecting: "0") + self.modTest(lhs: "2576980379", rhs: "-2576980379", expecting: "0") + self.modTest(lhs: "2576980379", rhs: "1717986920", expecting: "858993459") + self.modTest(lhs: "2576980379", rhs: "-1717986920", expecting: "858993459") + self.modTest(lhs: "2576980379", rhs: "858993461", expecting: "858993457") + self.modTest(lhs: "2576980379", rhs: "-858993461", expecting: "858993457") + self.modTest(lhs: "-2576980379", rhs: "1", expecting: "0") + self.modTest(lhs: "-2576980379", rhs: "-1", expecting: "0") + self.modTest(lhs: "-2576980379", rhs: "8589934592", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-8589934592", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "7730941133", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-7730941133", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "6871947674", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-6871947674", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "6012954215", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-6012954215", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "5153960756", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-5153960756", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "4294967297", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-4294967297", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "3435973838", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-3435973838", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "2576980379", expecting: "0") + self.modTest(lhs: "-2576980379", rhs: "-2576980379", expecting: "0") + self.modTest(lhs: "-2576980379", rhs: "1717986920", expecting: "-858993459") + self.modTest(lhs: "-2576980379", rhs: "-1717986920", expecting: "-858993459") + self.modTest(lhs: "-2576980379", rhs: "858993461", expecting: "-858993457") + self.modTest(lhs: "-2576980379", rhs: "-858993461", expecting: "-858993457") + self.modTest(lhs: "1717986920", rhs: "1", expecting: "0") + self.modTest(lhs: "1717986920", rhs: "-1", expecting: "0") + self.modTest(lhs: "1717986920", rhs: "8589934592", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "-8589934592", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "7730941133", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "-7730941133", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "6871947674", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "-6871947674", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "6012954215", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "-6012954215", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "5153960756", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "-5153960756", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "4294967297", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "-4294967297", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "3435973838", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "-3435973838", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "2576980379", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "-2576980379", expecting: "1717986920") + self.modTest(lhs: "1717986920", rhs: "1717986920", expecting: "0") + self.modTest(lhs: "1717986920", rhs: "-1717986920", expecting: "0") + self.modTest(lhs: "1717986920", rhs: "858993461", expecting: "858993459") + self.modTest(lhs: "1717986920", rhs: "-858993461", expecting: "858993459") + self.modTest(lhs: "-1717986920", rhs: "1", expecting: "0") + self.modTest(lhs: "-1717986920", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1717986920", rhs: "8589934592", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-8589934592", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "7730941133", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-7730941133", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "6871947674", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-6871947674", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "6012954215", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-6012954215", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "5153960756", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-5153960756", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "4294967297", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-4294967297", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "3435973838", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-3435973838", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "2576980379", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "-2576980379", expecting: "-1717986920") + self.modTest(lhs: "-1717986920", rhs: "1717986920", expecting: "0") + self.modTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "0") + self.modTest(lhs: "-1717986920", rhs: "858993461", expecting: "-858993459") + self.modTest(lhs: "-1717986920", rhs: "-858993461", expecting: "-858993459") + self.modTest(lhs: "858993461", rhs: "1", expecting: "0") + self.modTest(lhs: "858993461", rhs: "-1", expecting: "0") + self.modTest(lhs: "858993461", rhs: "8589934592", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-8589934592", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "7730941133", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-7730941133", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "6871947674", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-6871947674", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "6012954215", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-6012954215", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "5153960756", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-5153960756", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "4294967297", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-4294967297", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "3435973838", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-3435973838", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "2576980379", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-2576980379", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "1717986920", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-1717986920", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "858993461", expecting: "0") + self.modTest(lhs: "858993461", rhs: "-858993461", expecting: "0") + self.modTest(lhs: "-858993461", rhs: "1", expecting: "0") + self.modTest(lhs: "-858993461", rhs: "-1", expecting: "0") + self.modTest(lhs: "-858993461", rhs: "8589934592", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-8589934592", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "7730941133", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-7730941133", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "6871947674", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-6871947674", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "6012954215", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-6012954215", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "5153960756", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-5153960756", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "4294967297", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-4294967297", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "3435973838", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-3435973838", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "2576980379", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-2576980379", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "1717986920", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-1717986920", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "858993461", expecting: "0") + self.modTest(lhs: "-858993461", rhs: "-858993461", expecting: "0") + } + + func test_mod_int_big() { + 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: "8589934592", rhs: "1", expecting: "0") + self.modTest(lhs: "8589934592", rhs: "-1", expecting: "0") + self.modTest(lhs: "8589934592", rhs: "18446744073709551615", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "-18446744073709551615", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "18446744073709551617", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "-18446744073709551617", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "340282366920938463481821351505477763074", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "18446744073709551623", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "-18446744073709551623", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "340282366920938463592501815947735072770", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "18446744073709551629", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "-18446744073709551629", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "340282366920938463703182280389992382466", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "18446744073709551635", expecting: "8589934592") + self.modTest(lhs: "8589934592", rhs: "-18446744073709551635", expecting: "8589934592") + self.modTest(lhs: "-8589934592", rhs: "1", expecting: "0") + self.modTest(lhs: "-8589934592", rhs: "-1", expecting: "0") + self.modTest(lhs: "-8589934592", rhs: "18446744073709551615", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "-18446744073709551615", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "18446744073709551617", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "-18446744073709551617", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "340282366920938463481821351505477763074", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "18446744073709551623", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "-18446744073709551623", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "340282366920938463592501815947735072770", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "18446744073709551629", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "-18446744073709551629", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "340282366920938463703182280389992382466", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "18446744073709551635", expecting: "-8589934592") + self.modTest(lhs: "-8589934592", rhs: "-18446744073709551635", expecting: "-8589934592") + self.modTest(lhs: "7730941133", rhs: "1", expecting: "0") + self.modTest(lhs: "7730941133", rhs: "-1", expecting: "0") + self.modTest(lhs: "7730941133", rhs: "18446744073709551615", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "-18446744073709551615", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "18446744073709551617", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "-18446744073709551617", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "340282366920938463481821351505477763074", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "18446744073709551623", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "-18446744073709551623", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "340282366920938463592501815947735072770", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "18446744073709551629", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "-18446744073709551629", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "340282366920938463703182280389992382466", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "18446744073709551635", expecting: "7730941133") + self.modTest(lhs: "7730941133", rhs: "-18446744073709551635", expecting: "7730941133") + self.modTest(lhs: "-7730941133", rhs: "1", expecting: "0") + self.modTest(lhs: "-7730941133", rhs: "-1", expecting: "0") + self.modTest(lhs: "-7730941133", rhs: "18446744073709551615", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "-18446744073709551615", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "18446744073709551617", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "-18446744073709551617", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "340282366920938463481821351505477763074", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "18446744073709551623", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "-18446744073709551623", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "340282366920938463592501815947735072770", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "18446744073709551629", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "-18446744073709551629", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "340282366920938463703182280389992382466", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "18446744073709551635", expecting: "-7730941133") + self.modTest(lhs: "-7730941133", rhs: "-18446744073709551635", expecting: "-7730941133") + self.modTest(lhs: "6871947674", rhs: "1", expecting: "0") + self.modTest(lhs: "6871947674", rhs: "-1", expecting: "0") + self.modTest(lhs: "6871947674", rhs: "18446744073709551615", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "-18446744073709551615", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "18446744073709551617", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "-18446744073709551617", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "340282366920938463481821351505477763074", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "18446744073709551623", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "-18446744073709551623", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "340282366920938463592501815947735072770", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "18446744073709551629", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "-18446744073709551629", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "340282366920938463703182280389992382466", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "18446744073709551635", expecting: "6871947674") + self.modTest(lhs: "6871947674", rhs: "-18446744073709551635", expecting: "6871947674") + self.modTest(lhs: "-6871947674", rhs: "1", expecting: "0") + self.modTest(lhs: "-6871947674", rhs: "-1", expecting: "0") + self.modTest(lhs: "-6871947674", rhs: "18446744073709551615", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "-18446744073709551615", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "18446744073709551617", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "-18446744073709551617", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "340282366920938463481821351505477763074", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "18446744073709551623", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "-18446744073709551623", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "340282366920938463592501815947735072770", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "18446744073709551629", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "-18446744073709551629", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "340282366920938463703182280389992382466", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "18446744073709551635", expecting: "-6871947674") + self.modTest(lhs: "-6871947674", rhs: "-18446744073709551635", expecting: "-6871947674") + self.modTest(lhs: "6012954215", rhs: "1", expecting: "0") + self.modTest(lhs: "6012954215", rhs: "-1", expecting: "0") + self.modTest(lhs: "6012954215", rhs: "18446744073709551615", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-18446744073709551615", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "18446744073709551617", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-18446744073709551617", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "340282366920938463481821351505477763074", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "18446744073709551623", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-18446744073709551623", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "340282366920938463592501815947735072770", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "18446744073709551629", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-18446744073709551629", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "340282366920938463703182280389992382466", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "18446744073709551635", expecting: "6012954215") + self.modTest(lhs: "6012954215", rhs: "-18446744073709551635", expecting: "6012954215") + self.modTest(lhs: "-6012954215", rhs: "1", expecting: "0") + self.modTest(lhs: "-6012954215", rhs: "-1", expecting: "0") + self.modTest(lhs: "-6012954215", rhs: "18446744073709551615", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-18446744073709551615", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "18446744073709551617", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-18446744073709551617", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "340282366920938463481821351505477763074", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "18446744073709551623", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-18446744073709551623", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "340282366920938463592501815947735072770", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "18446744073709551629", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-18446744073709551629", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "340282366920938463703182280389992382466", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "18446744073709551635", expecting: "-6012954215") + self.modTest(lhs: "-6012954215", rhs: "-18446744073709551635", expecting: "-6012954215") + self.modTest(lhs: "5153960756", rhs: "1", expecting: "0") + self.modTest(lhs: "5153960756", rhs: "-1", expecting: "0") + self.modTest(lhs: "5153960756", rhs: "18446744073709551615", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-18446744073709551615", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "18446744073709551617", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-18446744073709551617", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "340282366920938463481821351505477763074", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "18446744073709551623", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-18446744073709551623", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "340282366920938463592501815947735072770", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "18446744073709551629", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-18446744073709551629", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "340282366920938463703182280389992382466", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "18446744073709551635", expecting: "5153960756") + self.modTest(lhs: "5153960756", rhs: "-18446744073709551635", expecting: "5153960756") + self.modTest(lhs: "-5153960756", rhs: "1", expecting: "0") + self.modTest(lhs: "-5153960756", rhs: "-1", expecting: "0") + self.modTest(lhs: "-5153960756", rhs: "18446744073709551615", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-18446744073709551615", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "18446744073709551617", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-18446744073709551617", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "340282366920938463481821351505477763074", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "18446744073709551623", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-18446744073709551623", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "340282366920938463592501815947735072770", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "18446744073709551629", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-18446744073709551629", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "340282366920938463703182280389992382466", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "18446744073709551635", expecting: "-5153960756") + self.modTest(lhs: "-5153960756", rhs: "-18446744073709551635", expecting: "-5153960756") + self.modTest(lhs: "4294967297", rhs: "1", expecting: "0") + self.modTest(lhs: "4294967297", rhs: "-1", expecting: "0") + self.modTest(lhs: "4294967297", rhs: "18446744073709551615", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-18446744073709551615", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "18446744073709551617", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-18446744073709551617", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "340282366920938463481821351505477763074", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "18446744073709551623", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-18446744073709551623", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "340282366920938463592501815947735072770", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "18446744073709551629", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-18446744073709551629", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "340282366920938463703182280389992382466", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "18446744073709551635", expecting: "4294967297") + self.modTest(lhs: "4294967297", rhs: "-18446744073709551635", expecting: "4294967297") + self.modTest(lhs: "-4294967297", rhs: "1", expecting: "0") + self.modTest(lhs: "-4294967297", rhs: "-1", expecting: "0") + self.modTest(lhs: "-4294967297", rhs: "18446744073709551615", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-18446744073709551615", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "18446744073709551617", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-18446744073709551617", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "340282366920938463481821351505477763074", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "18446744073709551623", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-18446744073709551623", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "340282366920938463592501815947735072770", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "18446744073709551629", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-18446744073709551629", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "340282366920938463703182280389992382466", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "18446744073709551635", expecting: "-4294967297") + self.modTest(lhs: "-4294967297", rhs: "-18446744073709551635", expecting: "-4294967297") + self.modTest(lhs: "3435973838", rhs: "1", expecting: "0") + self.modTest(lhs: "3435973838", rhs: "-1", expecting: "0") + self.modTest(lhs: "3435973838", rhs: "18446744073709551615", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-18446744073709551615", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "18446744073709551617", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-18446744073709551617", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "340282366920938463481821351505477763074", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "18446744073709551623", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-18446744073709551623", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "340282366920938463592501815947735072770", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "18446744073709551629", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-18446744073709551629", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "340282366920938463703182280389992382466", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "18446744073709551635", expecting: "3435973838") + self.modTest(lhs: "3435973838", rhs: "-18446744073709551635", expecting: "3435973838") + self.modTest(lhs: "-3435973838", rhs: "1", expecting: "0") + self.modTest(lhs: "-3435973838", rhs: "-1", expecting: "0") + self.modTest(lhs: "-3435973838", rhs: "18446744073709551615", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-18446744073709551615", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "18446744073709551617", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-18446744073709551617", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "340282366920938463481821351505477763074", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "18446744073709551623", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-18446744073709551623", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "340282366920938463592501815947735072770", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "18446744073709551629", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-18446744073709551629", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "340282366920938463703182280389992382466", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "18446744073709551635", expecting: "-3435973838") + self.modTest(lhs: "-3435973838", rhs: "-18446744073709551635", expecting: "-3435973838") + self.modTest(lhs: "2576980379", rhs: "1", expecting: "0") + self.modTest(lhs: "2576980379", rhs: "-1", expecting: "0") + self.modTest(lhs: "2576980379", rhs: "18446744073709551615", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-18446744073709551615", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "18446744073709551617", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-18446744073709551617", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "340282366920938463481821351505477763074", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "18446744073709551623", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-18446744073709551623", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "340282366920938463592501815947735072770", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "18446744073709551629", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-18446744073709551629", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "340282366920938463703182280389992382466", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "18446744073709551635", expecting: "2576980379") + self.modTest(lhs: "2576980379", rhs: "-18446744073709551635", expecting: "2576980379") + self.modTest(lhs: "-2576980379", rhs: "1", expecting: "0") + self.modTest(lhs: "-2576980379", rhs: "-1", expecting: "0") + self.modTest(lhs: "-2576980379", rhs: "18446744073709551615", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-18446744073709551615", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "18446744073709551617", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-18446744073709551617", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "340282366920938463481821351505477763074", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "18446744073709551623", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-18446744073709551623", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "340282366920938463592501815947735072770", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "18446744073709551629", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-18446744073709551629", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "340282366920938463703182280389992382466", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "18446744073709551635", expecting: "-2576980379") + self.modTest(lhs: "-2576980379", rhs: "-18446744073709551635", expecting: "-2576980379") + 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: "-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: "858993461", rhs: "1", expecting: "0") + self.modTest(lhs: "858993461", rhs: "-1", expecting: "0") + self.modTest(lhs: "858993461", rhs: "18446744073709551615", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-18446744073709551615", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "18446744073709551617", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-18446744073709551617", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "340282366920938463481821351505477763074", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-340282366920938463481821351505477763074", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "18446744073709551623", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-18446744073709551623", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "340282366920938463592501815947735072770", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-340282366920938463592501815947735072770", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "18446744073709551629", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-18446744073709551629", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "340282366920938463703182280389992382466", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-340282366920938463703182280389992382466", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "18446744073709551635", expecting: "858993461") + self.modTest(lhs: "858993461", rhs: "-18446744073709551635", expecting: "858993461") + self.modTest(lhs: "-858993461", rhs: "1", expecting: "0") + self.modTest(lhs: "-858993461", rhs: "-1", expecting: "0") + self.modTest(lhs: "-858993461", rhs: "18446744073709551615", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-18446744073709551615", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "18446744073709551617", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-18446744073709551617", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "340282366920938463481821351505477763074", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-340282366920938463481821351505477763074", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "18446744073709551623", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-18446744073709551623", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "340282366920938463592501815947735072770", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-340282366920938463592501815947735072770", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "18446744073709551629", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-18446744073709551629", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "340282366920938463703182280389992382466", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-340282366920938463703182280389992382466", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "18446744073709551635", expecting: "-858993461") + self.modTest(lhs: "-858993461", rhs: "-18446744073709551635", expecting: "-858993461") + } + + func test_mod_big_int() { + self.modTest(lhs: "0", rhs: "1", expecting: "0") + self.modTest(lhs: "0", rhs: "-1", expecting: "0") + self.modTest(lhs: "0", rhs: "8589934592", expecting: "0") + self.modTest(lhs: "0", rhs: "-8589934592", expecting: "0") + self.modTest(lhs: "0", rhs: "7730941133", expecting: "0") + self.modTest(lhs: "0", rhs: "-7730941133", expecting: "0") + self.modTest(lhs: "0", rhs: "6871947674", expecting: "0") + self.modTest(lhs: "0", rhs: "-6871947674", expecting: "0") + self.modTest(lhs: "0", rhs: "6012954215", expecting: "0") + self.modTest(lhs: "0", rhs: "-6012954215", expecting: "0") + self.modTest(lhs: "0", rhs: "5153960756", expecting: "0") + self.modTest(lhs: "0", rhs: "-5153960756", expecting: "0") + self.modTest(lhs: "0", rhs: "4294967297", expecting: "0") + self.modTest(lhs: "0", rhs: "-4294967297", expecting: "0") + self.modTest(lhs: "0", rhs: "3435973838", expecting: "0") + self.modTest(lhs: "0", rhs: "-3435973838", expecting: "0") + self.modTest(lhs: "0", rhs: "2576980379", expecting: "0") + self.modTest(lhs: "0", rhs: "-2576980379", expecting: "0") + self.modTest(lhs: "0", rhs: "1717986920", expecting: "0") + self.modTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.modTest(lhs: "0", rhs: "858993461", expecting: "0") + self.modTest(lhs: "0", rhs: "-858993461", expecting: "0") + self.modTest(lhs: "1", rhs: "1", expecting: "0") + self.modTest(lhs: "1", rhs: "-1", expecting: "0") + self.modTest(lhs: "1", rhs: "8589934592", expecting: "1") + self.modTest(lhs: "1", rhs: "-8589934592", expecting: "1") + self.modTest(lhs: "1", rhs: "7730941133", expecting: "1") + self.modTest(lhs: "1", rhs: "-7730941133", expecting: "1") + self.modTest(lhs: "1", rhs: "6871947674", expecting: "1") + self.modTest(lhs: "1", rhs: "-6871947674", expecting: "1") + self.modTest(lhs: "1", rhs: "6012954215", expecting: "1") + self.modTest(lhs: "1", rhs: "-6012954215", expecting: "1") + self.modTest(lhs: "1", rhs: "5153960756", expecting: "1") + self.modTest(lhs: "1", rhs: "-5153960756", expecting: "1") + self.modTest(lhs: "1", rhs: "4294967297", expecting: "1") + self.modTest(lhs: "1", rhs: "-4294967297", expecting: "1") + self.modTest(lhs: "1", rhs: "3435973838", expecting: "1") + self.modTest(lhs: "1", rhs: "-3435973838", expecting: "1") + self.modTest(lhs: "1", rhs: "2576980379", expecting: "1") + self.modTest(lhs: "1", rhs: "-2576980379", expecting: "1") + self.modTest(lhs: "1", rhs: "1717986920", expecting: "1") + self.modTest(lhs: "1", rhs: "-1717986920", expecting: "1") + self.modTest(lhs: "1", rhs: "858993461", expecting: "1") + self.modTest(lhs: "1", rhs: "-858993461", expecting: "1") + self.modTest(lhs: "-1", rhs: "1", expecting: "0") + self.modTest(lhs: "-1", rhs: "-1", expecting: "0") + self.modTest(lhs: "-1", rhs: "8589934592", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-8589934592", expecting: "-1") + self.modTest(lhs: "-1", rhs: "7730941133", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-7730941133", expecting: "-1") + self.modTest(lhs: "-1", rhs: "6871947674", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-6871947674", expecting: "-1") + self.modTest(lhs: "-1", rhs: "6012954215", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-6012954215", expecting: "-1") + self.modTest(lhs: "-1", rhs: "5153960756", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-5153960756", expecting: "-1") + self.modTest(lhs: "-1", rhs: "4294967297", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-4294967297", expecting: "-1") + self.modTest(lhs: "-1", rhs: "3435973838", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-3435973838", expecting: "-1") + self.modTest(lhs: "-1", rhs: "2576980379", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-2576980379", expecting: "-1") + self.modTest(lhs: "-1", rhs: "1717986920", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-1717986920", expecting: "-1") + self.modTest(lhs: "-1", rhs: "858993461", expecting: "-1") + self.modTest(lhs: "-1", rhs: "-858993461", expecting: "-1") + self.modTest(lhs: "18446744073709551615", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551615", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551615", rhs: "8589934592", expecting: "8589934591") + self.modTest(lhs: "18446744073709551615", rhs: "-8589934592", expecting: "8589934591") + self.modTest(lhs: "18446744073709551615", rhs: "7730941133", expecting: "1240768329") + self.modTest(lhs: "18446744073709551615", rhs: "-7730941133", expecting: "1240768329") + self.modTest(lhs: "18446744073709551615", rhs: "6871947674", expecting: "5798205849") + self.modTest(lhs: "18446744073709551615", rhs: "-6871947674", expecting: "5798205849") + self.modTest(lhs: "18446744073709551615", rhs: "6012954215", expecting: "3313260485") + self.modTest(lhs: "18446744073709551615", rhs: "-6012954215", expecting: "3313260485") + self.modTest(lhs: "18446744073709551615", rhs: "5153960756", expecting: "4008636143") + self.modTest(lhs: "18446744073709551615", rhs: "-5153960756", expecting: "4008636143") + self.modTest(lhs: "18446744073709551615", rhs: "4294967297", expecting: "0") + self.modTest(lhs: "18446744073709551615", rhs: "-4294967297", expecting: "0") + self.modTest(lhs: "18446744073709551615", rhs: "3435973838", expecting: "429496731") + self.modTest(lhs: "18446744073709551615", rhs: "-3435973838", expecting: "429496731") + self.modTest(lhs: "18446744073709551615", rhs: "2576980379", expecting: "2004318077") + self.modTest(lhs: "18446744073709551615", rhs: "-2576980379", expecting: "2004318077") + self.modTest(lhs: "18446744073709551615", rhs: "1717986920", expecting: "15") + self.modTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "15") + self.modTest(lhs: "18446744073709551615", rhs: "858993461", expecting: "80") + self.modTest(lhs: "18446744073709551615", rhs: "-858993461", expecting: "80") + self.modTest(lhs: "-18446744073709551615", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551615", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551615", rhs: "8589934592", expecting: "-8589934591") + self.modTest(lhs: "-18446744073709551615", rhs: "-8589934592", expecting: "-8589934591") + self.modTest(lhs: "-18446744073709551615", rhs: "7730941133", expecting: "-1240768329") + self.modTest(lhs: "-18446744073709551615", rhs: "-7730941133", expecting: "-1240768329") + self.modTest(lhs: "-18446744073709551615", rhs: "6871947674", expecting: "-5798205849") + self.modTest(lhs: "-18446744073709551615", rhs: "-6871947674", expecting: "-5798205849") + self.modTest(lhs: "-18446744073709551615", rhs: "6012954215", expecting: "-3313260485") + self.modTest(lhs: "-18446744073709551615", rhs: "-6012954215", expecting: "-3313260485") + self.modTest(lhs: "-18446744073709551615", rhs: "5153960756", expecting: "-4008636143") + self.modTest(lhs: "-18446744073709551615", rhs: "-5153960756", expecting: "-4008636143") + self.modTest(lhs: "-18446744073709551615", rhs: "4294967297", expecting: "0") + self.modTest(lhs: "-18446744073709551615", rhs: "-4294967297", expecting: "0") + self.modTest(lhs: "-18446744073709551615", rhs: "3435973838", expecting: "-429496731") + self.modTest(lhs: "-18446744073709551615", rhs: "-3435973838", expecting: "-429496731") + self.modTest(lhs: "-18446744073709551615", rhs: "2576980379", expecting: "-2004318077") + self.modTest(lhs: "-18446744073709551615", rhs: "-2576980379", expecting: "-2004318077") + self.modTest(lhs: "-18446744073709551615", rhs: "1717986920", expecting: "-15") + self.modTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "-15") + self.modTest(lhs: "-18446744073709551615", rhs: "858993461", expecting: "-80") + self.modTest(lhs: "-18446744073709551615", rhs: "-858993461", expecting: "-80") + self.modTest(lhs: "18446744073709551617", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551617", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551617", rhs: "8589934592", expecting: "1") + self.modTest(lhs: "18446744073709551617", rhs: "-8589934592", expecting: "1") + self.modTest(lhs: "18446744073709551617", rhs: "7730941133", expecting: "1240768331") + self.modTest(lhs: "18446744073709551617", rhs: "-7730941133", expecting: "1240768331") + self.modTest(lhs: "18446744073709551617", rhs: "6871947674", expecting: "5798205851") + self.modTest(lhs: "18446744073709551617", rhs: "-6871947674", expecting: "5798205851") + self.modTest(lhs: "18446744073709551617", rhs: "6012954215", expecting: "3313260487") + self.modTest(lhs: "18446744073709551617", rhs: "-6012954215", expecting: "3313260487") + self.modTest(lhs: "18446744073709551617", rhs: "5153960756", expecting: "4008636145") + self.modTest(lhs: "18446744073709551617", rhs: "-5153960756", expecting: "4008636145") + self.modTest(lhs: "18446744073709551617", rhs: "4294967297", expecting: "2") + self.modTest(lhs: "18446744073709551617", rhs: "-4294967297", expecting: "2") + self.modTest(lhs: "18446744073709551617", rhs: "3435973838", expecting: "429496733") + self.modTest(lhs: "18446744073709551617", rhs: "-3435973838", expecting: "429496733") + self.modTest(lhs: "18446744073709551617", rhs: "2576980379", expecting: "2004318079") + self.modTest(lhs: "18446744073709551617", rhs: "-2576980379", expecting: "2004318079") + self.modTest(lhs: "18446744073709551617", rhs: "1717986920", expecting: "17") + self.modTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "17") + self.modTest(lhs: "18446744073709551617", rhs: "858993461", expecting: "82") + self.modTest(lhs: "18446744073709551617", rhs: "-858993461", expecting: "82") + self.modTest(lhs: "-18446744073709551617", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551617", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551617", rhs: "8589934592", expecting: "-1") + self.modTest(lhs: "-18446744073709551617", rhs: "-8589934592", expecting: "-1") + self.modTest(lhs: "-18446744073709551617", rhs: "7730941133", expecting: "-1240768331") + self.modTest(lhs: "-18446744073709551617", rhs: "-7730941133", expecting: "-1240768331") + self.modTest(lhs: "-18446744073709551617", rhs: "6871947674", expecting: "-5798205851") + self.modTest(lhs: "-18446744073709551617", rhs: "-6871947674", expecting: "-5798205851") + self.modTest(lhs: "-18446744073709551617", rhs: "6012954215", expecting: "-3313260487") + self.modTest(lhs: "-18446744073709551617", rhs: "-6012954215", expecting: "-3313260487") + self.modTest(lhs: "-18446744073709551617", rhs: "5153960756", expecting: "-4008636145") + self.modTest(lhs: "-18446744073709551617", rhs: "-5153960756", expecting: "-4008636145") + self.modTest(lhs: "-18446744073709551617", rhs: "4294967297", expecting: "-2") + self.modTest(lhs: "-18446744073709551617", rhs: "-4294967297", expecting: "-2") + self.modTest(lhs: "-18446744073709551617", rhs: "3435973838", expecting: "-429496733") + self.modTest(lhs: "-18446744073709551617", rhs: "-3435973838", expecting: "-429496733") + self.modTest(lhs: "-18446744073709551617", rhs: "2576980379", expecting: "-2004318079") + self.modTest(lhs: "-18446744073709551617", rhs: "-2576980379", expecting: "-2004318079") + self.modTest(lhs: "-18446744073709551617", rhs: "1717986920", expecting: "-17") + self.modTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "-17") + self.modTest(lhs: "-18446744073709551617", rhs: "858993461", expecting: "-82") + self.modTest(lhs: "-18446744073709551617", rhs: "-858993461", expecting: "-82") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "1", expecting: "0") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-1", expecting: "0") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "8589934592", expecting: "2") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "2") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "7730941133", expecting: "492536718") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "492536718") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "6871947674", expecting: "5731096988") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "5731096988") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "6012954215", expecting: "6007945509") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "6007945509") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "5153960756", expecting: "636291454") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "636291454") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "4294967297", expecting: "4") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "4") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "3435973838", expecting: "3113851300") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "3113851300") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "2576980379", expecting: "1749801529") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "1749801529") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986920", expecting: "274") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "274") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "858993461", expecting: "6644") + self.modTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993461", expecting: "6644") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "1", expecting: "0") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1", expecting: "0") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "8589934592", expecting: "-2") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "-2") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "7730941133", expecting: "-492536718") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "-492536718") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "6871947674", expecting: "-5731096988") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "-5731096988") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "6012954215", expecting: "-6007945509") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "-6007945509") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "5153960756", expecting: "-636291454") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "-636291454") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "4294967297", expecting: "-4") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "-4") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "3435973838", expecting: "-3113851300") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "-3113851300") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "2576980379", expecting: "-1749801529") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "-1749801529") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986920", expecting: "-274") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-274") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993461", expecting: "-6644") + self.modTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993461", expecting: "-6644") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "0") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "0") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "8589934592", expecting: "5") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "5") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "2407491775") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "2407491775") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "935329797") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "935329797") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "3430045167") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "3430045167") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "919087657") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "919087657") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "7") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "7") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "3248069043") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "3248069043") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "109583748") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "109583748") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "4597") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "4597") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "544487") + self.modTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "544487") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1", expecting: "0") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1", expecting: "0") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "8589934592", expecting: "-5") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "-5") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "-2407491775") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "-2407491775") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "-935329797") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "-935329797") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "-3430045167") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "-3430045167") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "-919087657") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "-919087657") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "-7") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "-7") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "-3248069043") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "-3248069043") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "-109583748") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "-109583748") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "-4597") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-4597") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "-544487") + self.modTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "-544487") + self.modTest(lhs: "18446744073709551623", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551623", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551623", rhs: "8589934592", expecting: "7") + self.modTest(lhs: "18446744073709551623", rhs: "-8589934592", expecting: "7") + self.modTest(lhs: "18446744073709551623", rhs: "7730941133", expecting: "1240768337") + self.modTest(lhs: "18446744073709551623", rhs: "-7730941133", expecting: "1240768337") + self.modTest(lhs: "18446744073709551623", rhs: "6871947674", expecting: "5798205857") + self.modTest(lhs: "18446744073709551623", rhs: "-6871947674", expecting: "5798205857") + self.modTest(lhs: "18446744073709551623", rhs: "6012954215", expecting: "3313260493") + self.modTest(lhs: "18446744073709551623", rhs: "-6012954215", expecting: "3313260493") + self.modTest(lhs: "18446744073709551623", rhs: "5153960756", expecting: "4008636151") + self.modTest(lhs: "18446744073709551623", rhs: "-5153960756", expecting: "4008636151") + self.modTest(lhs: "18446744073709551623", rhs: "4294967297", expecting: "8") + self.modTest(lhs: "18446744073709551623", rhs: "-4294967297", expecting: "8") + self.modTest(lhs: "18446744073709551623", rhs: "3435973838", expecting: "429496739") + self.modTest(lhs: "18446744073709551623", rhs: "-3435973838", expecting: "429496739") + self.modTest(lhs: "18446744073709551623", rhs: "2576980379", expecting: "2004318085") + self.modTest(lhs: "18446744073709551623", rhs: "-2576980379", expecting: "2004318085") + self.modTest(lhs: "18446744073709551623", rhs: "1717986920", expecting: "23") + self.modTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "23") + self.modTest(lhs: "18446744073709551623", rhs: "858993461", expecting: "88") + self.modTest(lhs: "18446744073709551623", rhs: "-858993461", expecting: "88") + self.modTest(lhs: "-18446744073709551623", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551623", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551623", rhs: "8589934592", expecting: "-7") + self.modTest(lhs: "-18446744073709551623", rhs: "-8589934592", expecting: "-7") + self.modTest(lhs: "-18446744073709551623", rhs: "7730941133", expecting: "-1240768337") + self.modTest(lhs: "-18446744073709551623", rhs: "-7730941133", expecting: "-1240768337") + self.modTest(lhs: "-18446744073709551623", rhs: "6871947674", expecting: "-5798205857") + self.modTest(lhs: "-18446744073709551623", rhs: "-6871947674", expecting: "-5798205857") + self.modTest(lhs: "-18446744073709551623", rhs: "6012954215", expecting: "-3313260493") + self.modTest(lhs: "-18446744073709551623", rhs: "-6012954215", expecting: "-3313260493") + self.modTest(lhs: "-18446744073709551623", rhs: "5153960756", expecting: "-4008636151") + self.modTest(lhs: "-18446744073709551623", rhs: "-5153960756", expecting: "-4008636151") + self.modTest(lhs: "-18446744073709551623", rhs: "4294967297", expecting: "-8") + self.modTest(lhs: "-18446744073709551623", rhs: "-4294967297", expecting: "-8") + self.modTest(lhs: "-18446744073709551623", rhs: "3435973838", expecting: "-429496739") + self.modTest(lhs: "-18446744073709551623", rhs: "-3435973838", expecting: "-429496739") + self.modTest(lhs: "-18446744073709551623", rhs: "2576980379", expecting: "-2004318085") + self.modTest(lhs: "-18446744073709551623", rhs: "-2576980379", expecting: "-2004318085") + self.modTest(lhs: "-18446744073709551623", rhs: "1717986920", expecting: "-23") + self.modTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "-23") + self.modTest(lhs: "-18446744073709551623", rhs: "858993461", expecting: "-88") + self.modTest(lhs: "-18446744073709551623", rhs: "-858993461", expecting: "-88") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "1", expecting: "0") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-1", expecting: "0") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "8589934592", expecting: "2") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "2") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "7730941133", expecting: "206205565") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "206205565") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "6871947674", expecting: "6160593718") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "6160593718") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "6012954215", expecting: "1835691565") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "1835691565") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "5153960756", expecting: "4072265294") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "4072265294") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "4294967297", expecting: "10") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "10") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "3435973838", expecting: "2254857854") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "2254857854") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "2576980379", expecting: "890808102") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "890808102") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986920", expecting: "370") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "370") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "858993461", expecting: "7130") + self.modTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993461", expecting: "7130") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "1", expecting: "0") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1", expecting: "0") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "8589934592", expecting: "-2") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "-2") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "7730941133", expecting: "-206205565") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "-206205565") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "6871947674", expecting: "-6160593718") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "-6160593718") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "6012954215", expecting: "-1835691565") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "-1835691565") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "5153960756", expecting: "-4072265294") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "-4072265294") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "4294967297", expecting: "-10") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "-10") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "3435973838", expecting: "-2254857854") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "-2254857854") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "2576980379", expecting: "-890808102") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "-890808102") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986920", expecting: "-370") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-370") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993461", expecting: "-7130") + self.modTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993461", expecting: "-7130") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "0") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "0") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "8589934592", expecting: "11") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "11") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "5935374383") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "5935374383") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "103179889") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "103179889") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "5731546598") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "5731546598") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "3018849451") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "3018849451") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "13") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "13") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "3033320701") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "3033320701") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "2018458254") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "2018458254") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "6043") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "6043") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "583373") + self.modTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "583373") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1", expecting: "0") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1", expecting: "0") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "8589934592", expecting: "-11") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "-11") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "-5935374383") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "-5935374383") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "-103179889") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "-103179889") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "-5731546598") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "-5731546598") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "-3018849451") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "-3018849451") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "-13") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "-13") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "-3033320701") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "-3033320701") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "-2018458254") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "-2018458254") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "-6043") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-6043") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "-583373") + self.modTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "-583373") + self.modTest(lhs: "18446744073709551629", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551629", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551629", rhs: "8589934592", expecting: "13") + self.modTest(lhs: "18446744073709551629", rhs: "-8589934592", expecting: "13") + self.modTest(lhs: "18446744073709551629", rhs: "7730941133", expecting: "1240768343") + self.modTest(lhs: "18446744073709551629", rhs: "-7730941133", expecting: "1240768343") + self.modTest(lhs: "18446744073709551629", rhs: "6871947674", expecting: "5798205863") + self.modTest(lhs: "18446744073709551629", rhs: "-6871947674", expecting: "5798205863") + self.modTest(lhs: "18446744073709551629", rhs: "6012954215", expecting: "3313260499") + self.modTest(lhs: "18446744073709551629", rhs: "-6012954215", expecting: "3313260499") + self.modTest(lhs: "18446744073709551629", rhs: "5153960756", expecting: "4008636157") + self.modTest(lhs: "18446744073709551629", rhs: "-5153960756", expecting: "4008636157") + self.modTest(lhs: "18446744073709551629", rhs: "4294967297", expecting: "14") + self.modTest(lhs: "18446744073709551629", rhs: "-4294967297", expecting: "14") + self.modTest(lhs: "18446744073709551629", rhs: "3435973838", expecting: "429496745") + self.modTest(lhs: "18446744073709551629", rhs: "-3435973838", expecting: "429496745") + self.modTest(lhs: "18446744073709551629", rhs: "2576980379", expecting: "2004318091") + self.modTest(lhs: "18446744073709551629", rhs: "-2576980379", expecting: "2004318091") + self.modTest(lhs: "18446744073709551629", rhs: "1717986920", expecting: "29") + self.modTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "29") + self.modTest(lhs: "18446744073709551629", rhs: "858993461", expecting: "94") + self.modTest(lhs: "18446744073709551629", rhs: "-858993461", expecting: "94") + self.modTest(lhs: "-18446744073709551629", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551629", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551629", rhs: "8589934592", expecting: "-13") + self.modTest(lhs: "-18446744073709551629", rhs: "-8589934592", expecting: "-13") + self.modTest(lhs: "-18446744073709551629", rhs: "7730941133", expecting: "-1240768343") + self.modTest(lhs: "-18446744073709551629", rhs: "-7730941133", expecting: "-1240768343") + self.modTest(lhs: "-18446744073709551629", rhs: "6871947674", expecting: "-5798205863") + self.modTest(lhs: "-18446744073709551629", rhs: "-6871947674", expecting: "-5798205863") + self.modTest(lhs: "-18446744073709551629", rhs: "6012954215", expecting: "-3313260499") + self.modTest(lhs: "-18446744073709551629", rhs: "-6012954215", expecting: "-3313260499") + self.modTest(lhs: "-18446744073709551629", rhs: "5153960756", expecting: "-4008636157") + self.modTest(lhs: "-18446744073709551629", rhs: "-5153960756", expecting: "-4008636157") + self.modTest(lhs: "-18446744073709551629", rhs: "4294967297", expecting: "-14") + self.modTest(lhs: "-18446744073709551629", rhs: "-4294967297", expecting: "-14") + self.modTest(lhs: "-18446744073709551629", rhs: "3435973838", expecting: "-429496745") + self.modTest(lhs: "-18446744073709551629", rhs: "-3435973838", expecting: "-429496745") + self.modTest(lhs: "-18446744073709551629", rhs: "2576980379", expecting: "-2004318091") + self.modTest(lhs: "-18446744073709551629", rhs: "-2576980379", expecting: "-2004318091") + self.modTest(lhs: "-18446744073709551629", rhs: "1717986920", expecting: "-29") + self.modTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "-29") + self.modTest(lhs: "-18446744073709551629", rhs: "858993461", expecting: "-94") + self.modTest(lhs: "-18446744073709551629", rhs: "-858993461", expecting: "-94") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "1", expecting: "0") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-1", expecting: "0") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "8589934592", expecting: "2") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "2") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "7730941133", expecting: "7650815545") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "7650815545") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "6871947674", expecting: "6590090448") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "6590090448") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "6012954215", expecting: "3676391836") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "3676391836") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "5153960756", expecting: "2354278378") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "2354278378") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "4294967297", expecting: "16") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "16") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "3435973838", expecting: "1395864408") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "1395864408") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "2576980379", expecting: "31814675") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "31814675") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986920", expecting: "466") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "466") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "858993461", expecting: "7616") + self.modTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993461", expecting: "7616") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "1", expecting: "0") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1", expecting: "0") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "8589934592", expecting: "-2") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "-2") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "7730941133", expecting: "-7650815545") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "-7650815545") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "6871947674", expecting: "-6590090448") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "-6590090448") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "6012954215", expecting: "-3676391836") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "-3676391836") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "5153960756", expecting: "-2354278378") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "-2354278378") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "4294967297", expecting: "-16") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "-16") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "3435973838", expecting: "-1395864408") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "-1395864408") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "2576980379", expecting: "-31814675") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "-31814675") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986920", expecting: "-466") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-466") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993461", expecting: "-7616") + self.modTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993461", expecting: "-7616") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "0") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "0") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "8589934592", expecting: "17") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "17") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "1732315858") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "1732315858") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "6142977655") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "6142977655") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "2020093814") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "2020093814") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "5118611245") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "5118611245") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "19") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "19") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "2818572359") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "2818572359") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "1350352381") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "1350352381") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "7489") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "7489") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "622259") + self.modTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "622259") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1", expecting: "0") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1", expecting: "0") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "8589934592", expecting: "-17") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "-17") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "-1732315858") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "-1732315858") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "-6142977655") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "-6142977655") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "-2020093814") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "-2020093814") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "-5118611245") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "-5118611245") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "-19") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "-19") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "-2818572359") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "-2818572359") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "-1350352381") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "-1350352381") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "-7489") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-7489") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "-622259") + self.modTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "-622259") + self.modTest(lhs: "18446744073709551635", rhs: "1", expecting: "0") + self.modTest(lhs: "18446744073709551635", rhs: "-1", expecting: "0") + self.modTest(lhs: "18446744073709551635", rhs: "8589934592", expecting: "19") + self.modTest(lhs: "18446744073709551635", rhs: "-8589934592", expecting: "19") + self.modTest(lhs: "18446744073709551635", rhs: "7730941133", expecting: "1240768349") + self.modTest(lhs: "18446744073709551635", rhs: "-7730941133", expecting: "1240768349") + self.modTest(lhs: "18446744073709551635", rhs: "6871947674", expecting: "5798205869") + self.modTest(lhs: "18446744073709551635", rhs: "-6871947674", expecting: "5798205869") + self.modTest(lhs: "18446744073709551635", rhs: "6012954215", expecting: "3313260505") + self.modTest(lhs: "18446744073709551635", rhs: "-6012954215", expecting: "3313260505") + self.modTest(lhs: "18446744073709551635", rhs: "5153960756", expecting: "4008636163") + self.modTest(lhs: "18446744073709551635", rhs: "-5153960756", expecting: "4008636163") + self.modTest(lhs: "18446744073709551635", rhs: "4294967297", expecting: "20") + self.modTest(lhs: "18446744073709551635", rhs: "-4294967297", expecting: "20") + self.modTest(lhs: "18446744073709551635", rhs: "3435973838", expecting: "429496751") + self.modTest(lhs: "18446744073709551635", rhs: "-3435973838", expecting: "429496751") + self.modTest(lhs: "18446744073709551635", rhs: "2576980379", expecting: "2004318097") + self.modTest(lhs: "18446744073709551635", rhs: "-2576980379", expecting: "2004318097") + self.modTest(lhs: "18446744073709551635", rhs: "1717986920", expecting: "35") + self.modTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "35") + self.modTest(lhs: "18446744073709551635", rhs: "858993461", expecting: "100") + self.modTest(lhs: "18446744073709551635", rhs: "-858993461", expecting: "100") + self.modTest(lhs: "-18446744073709551635", rhs: "1", expecting: "0") + self.modTest(lhs: "-18446744073709551635", rhs: "-1", expecting: "0") + self.modTest(lhs: "-18446744073709551635", rhs: "8589934592", expecting: "-19") + self.modTest(lhs: "-18446744073709551635", rhs: "-8589934592", expecting: "-19") + self.modTest(lhs: "-18446744073709551635", rhs: "7730941133", expecting: "-1240768349") + self.modTest(lhs: "-18446744073709551635", rhs: "-7730941133", expecting: "-1240768349") + self.modTest(lhs: "-18446744073709551635", rhs: "6871947674", expecting: "-5798205869") + self.modTest(lhs: "-18446744073709551635", rhs: "-6871947674", expecting: "-5798205869") + self.modTest(lhs: "-18446744073709551635", rhs: "6012954215", expecting: "-3313260505") + self.modTest(lhs: "-18446744073709551635", rhs: "-6012954215", expecting: "-3313260505") + self.modTest(lhs: "-18446744073709551635", rhs: "5153960756", expecting: "-4008636163") + self.modTest(lhs: "-18446744073709551635", rhs: "-5153960756", expecting: "-4008636163") + self.modTest(lhs: "-18446744073709551635", rhs: "4294967297", expecting: "-20") + self.modTest(lhs: "-18446744073709551635", rhs: "-4294967297", expecting: "-20") + self.modTest(lhs: "-18446744073709551635", rhs: "3435973838", expecting: "-429496751") + self.modTest(lhs: "-18446744073709551635", rhs: "-3435973838", expecting: "-429496751") + self.modTest(lhs: "-18446744073709551635", rhs: "2576980379", expecting: "-2004318097") + self.modTest(lhs: "-18446744073709551635", rhs: "-2576980379", expecting: "-2004318097") + self.modTest(lhs: "-18446744073709551635", rhs: "1717986920", expecting: "-35") + self.modTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "-35") + self.modTest(lhs: "-18446744073709551635", rhs: "858993461", expecting: "-100") + self.modTest(lhs: "-18446744073709551635", rhs: "-858993461", expecting: "-100") + } + + func test_mod_big_big() { + 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_int_int() { + 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: "8589934592", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-8589934592", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "7730941133", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-7730941133", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "6871947674", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-6871947674", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "6012954215", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-6012954215", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "5153960756", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-5153960756", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "4294967297", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-4294967297", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "3435973838", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-3435973838", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "2576980379", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-2576980379", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "1717986920", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1717986920", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "858993461", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-858993461", 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: "8589934592", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-8589934592", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "7730941133", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-7730941133", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "6871947674", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-6871947674", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "6012954215", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-6012954215", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "5153960756", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-5153960756", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "4294967297", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-4294967297", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "3435973838", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-3435973838", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "2576980379", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-2576980379", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "1717986920", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-1717986920", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "858993461", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-858993461", 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: "8589934592", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-8589934592", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "7730941133", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-7730941133", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "6871947674", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-6871947674", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "6012954215", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-6012954215", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "5153960756", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-5153960756", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "4294967297", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-4294967297", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "3435973838", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-3435973838", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "2576980379", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-2576980379", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "1717986920", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-1717986920", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "858993461", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-858993461", div: "0", mod: "-1") + self.divModTest(lhs: "8589934592", rhs: "1", div: "8589934592", mod: "0") + self.divModTest(lhs: "8589934592", rhs: "-1", div: "-8589934592", mod: "0") + self.divModTest(lhs: "8589934592", rhs: "8589934592", div: "1", mod: "0") + self.divModTest(lhs: "8589934592", rhs: "-8589934592", div: "-1", mod: "0") + self.divModTest(lhs: "8589934592", rhs: "7730941133", div: "1", mod: "858993459") + self.divModTest(lhs: "8589934592", rhs: "-7730941133", div: "-1", mod: "858993459") + self.divModTest(lhs: "8589934592", rhs: "6871947674", div: "1", mod: "1717986918") + self.divModTest(lhs: "8589934592", rhs: "-6871947674", div: "-1", mod: "1717986918") + self.divModTest(lhs: "8589934592", rhs: "6012954215", div: "1", mod: "2576980377") + self.divModTest(lhs: "8589934592", rhs: "-6012954215", div: "-1", mod: "2576980377") + self.divModTest(lhs: "8589934592", rhs: "5153960756", div: "1", mod: "3435973836") + self.divModTest(lhs: "8589934592", rhs: "-5153960756", div: "-1", mod: "3435973836") + self.divModTest(lhs: "8589934592", rhs: "4294967297", div: "1", mod: "4294967295") + self.divModTest(lhs: "8589934592", rhs: "-4294967297", div: "-1", mod: "4294967295") + self.divModTest(lhs: "8589934592", rhs: "3435973838", div: "2", mod: "1717986916") + self.divModTest(lhs: "8589934592", rhs: "-3435973838", div: "-2", mod: "1717986916") + self.divModTest(lhs: "8589934592", rhs: "2576980379", div: "3", mod: "858993455") + self.divModTest(lhs: "8589934592", rhs: "-2576980379", div: "-3", mod: "858993455") + self.divModTest(lhs: "8589934592", rhs: "1717986920", div: "4", mod: "1717986912") + self.divModTest(lhs: "8589934592", rhs: "-1717986920", div: "-4", mod: "1717986912") + self.divModTest(lhs: "8589934592", rhs: "858993461", div: "9", mod: "858993443") + self.divModTest(lhs: "8589934592", rhs: "-858993461", div: "-9", mod: "858993443") + self.divModTest(lhs: "-8589934592", rhs: "1", div: "-8589934592", mod: "0") + self.divModTest(lhs: "-8589934592", rhs: "-1", div: "8589934592", mod: "0") + self.divModTest(lhs: "-8589934592", rhs: "8589934592", div: "-1", mod: "0") + self.divModTest(lhs: "-8589934592", rhs: "-8589934592", div: "1", mod: "0") + self.divModTest(lhs: "-8589934592", rhs: "7730941133", div: "-1", mod: "-858993459") + self.divModTest(lhs: "-8589934592", rhs: "-7730941133", div: "1", mod: "-858993459") + self.divModTest(lhs: "-8589934592", rhs: "6871947674", div: "-1", mod: "-1717986918") + self.divModTest(lhs: "-8589934592", rhs: "-6871947674", div: "1", mod: "-1717986918") + self.divModTest(lhs: "-8589934592", rhs: "6012954215", div: "-1", mod: "-2576980377") + self.divModTest(lhs: "-8589934592", rhs: "-6012954215", div: "1", mod: "-2576980377") + self.divModTest(lhs: "-8589934592", rhs: "5153960756", div: "-1", mod: "-3435973836") + self.divModTest(lhs: "-8589934592", rhs: "-5153960756", div: "1", mod: "-3435973836") + self.divModTest(lhs: "-8589934592", rhs: "4294967297", div: "-1", mod: "-4294967295") + self.divModTest(lhs: "-8589934592", rhs: "-4294967297", div: "1", mod: "-4294967295") + self.divModTest(lhs: "-8589934592", rhs: "3435973838", div: "-2", mod: "-1717986916") + self.divModTest(lhs: "-8589934592", rhs: "-3435973838", div: "2", mod: "-1717986916") + self.divModTest(lhs: "-8589934592", rhs: "2576980379", div: "-3", mod: "-858993455") + self.divModTest(lhs: "-8589934592", rhs: "-2576980379", div: "3", mod: "-858993455") + self.divModTest(lhs: "-8589934592", rhs: "1717986920", div: "-4", mod: "-1717986912") + self.divModTest(lhs: "-8589934592", rhs: "-1717986920", div: "4", mod: "-1717986912") + self.divModTest(lhs: "-8589934592", rhs: "858993461", div: "-9", mod: "-858993443") + self.divModTest(lhs: "-8589934592", rhs: "-858993461", div: "9", mod: "-858993443") + self.divModTest(lhs: "7730941133", rhs: "1", div: "7730941133", mod: "0") + self.divModTest(lhs: "7730941133", rhs: "-1", div: "-7730941133", mod: "0") + self.divModTest(lhs: "7730941133", rhs: "8589934592", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "-8589934592", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "7730941133", div: "1", mod: "0") + self.divModTest(lhs: "7730941133", rhs: "-7730941133", div: "-1", mod: "0") + self.divModTest(lhs: "7730941133", rhs: "6871947674", div: "1", mod: "858993459") + self.divModTest(lhs: "7730941133", rhs: "-6871947674", div: "-1", mod: "858993459") + self.divModTest(lhs: "7730941133", rhs: "6012954215", div: "1", mod: "1717986918") + self.divModTest(lhs: "7730941133", rhs: "-6012954215", div: "-1", mod: "1717986918") + self.divModTest(lhs: "7730941133", rhs: "5153960756", div: "1", mod: "2576980377") + self.divModTest(lhs: "7730941133", rhs: "-5153960756", div: "-1", mod: "2576980377") + self.divModTest(lhs: "7730941133", rhs: "4294967297", div: "1", mod: "3435973836") + self.divModTest(lhs: "7730941133", rhs: "-4294967297", div: "-1", mod: "3435973836") + self.divModTest(lhs: "7730941133", rhs: "3435973838", div: "2", mod: "858993457") + self.divModTest(lhs: "7730941133", rhs: "-3435973838", div: "-2", mod: "858993457") + self.divModTest(lhs: "7730941133", rhs: "2576980379", div: "2", mod: "2576980375") + self.divModTest(lhs: "7730941133", rhs: "-2576980379", div: "-2", mod: "2576980375") + self.divModTest(lhs: "7730941133", rhs: "1717986920", div: "4", mod: "858993453") + self.divModTest(lhs: "7730941133", rhs: "-1717986920", div: "-4", mod: "858993453") + self.divModTest(lhs: "7730941133", rhs: "858993461", div: "8", mod: "858993445") + self.divModTest(lhs: "7730941133", rhs: "-858993461", div: "-8", mod: "858993445") + self.divModTest(lhs: "-7730941133", rhs: "1", div: "-7730941133", mod: "0") + self.divModTest(lhs: "-7730941133", rhs: "-1", div: "7730941133", mod: "0") + self.divModTest(lhs: "-7730941133", rhs: "8589934592", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "-8589934592", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "7730941133", div: "-1", mod: "0") + self.divModTest(lhs: "-7730941133", rhs: "-7730941133", div: "1", mod: "0") + self.divModTest(lhs: "-7730941133", rhs: "6871947674", div: "-1", mod: "-858993459") + self.divModTest(lhs: "-7730941133", rhs: "-6871947674", div: "1", mod: "-858993459") + self.divModTest(lhs: "-7730941133", rhs: "6012954215", div: "-1", mod: "-1717986918") + self.divModTest(lhs: "-7730941133", rhs: "-6012954215", div: "1", mod: "-1717986918") + self.divModTest(lhs: "-7730941133", rhs: "5153960756", div: "-1", mod: "-2576980377") + self.divModTest(lhs: "-7730941133", rhs: "-5153960756", div: "1", mod: "-2576980377") + self.divModTest(lhs: "-7730941133", rhs: "4294967297", div: "-1", mod: "-3435973836") + self.divModTest(lhs: "-7730941133", rhs: "-4294967297", div: "1", mod: "-3435973836") + self.divModTest(lhs: "-7730941133", rhs: "3435973838", div: "-2", mod: "-858993457") + self.divModTest(lhs: "-7730941133", rhs: "-3435973838", div: "2", mod: "-858993457") + self.divModTest(lhs: "-7730941133", rhs: "2576980379", div: "-2", mod: "-2576980375") + self.divModTest(lhs: "-7730941133", rhs: "-2576980379", div: "2", mod: "-2576980375") + self.divModTest(lhs: "-7730941133", rhs: "1717986920", div: "-4", mod: "-858993453") + self.divModTest(lhs: "-7730941133", rhs: "-1717986920", div: "4", mod: "-858993453") + self.divModTest(lhs: "-7730941133", rhs: "858993461", div: "-8", mod: "-858993445") + self.divModTest(lhs: "-7730941133", rhs: "-858993461", div: "8", mod: "-858993445") + self.divModTest(lhs: "6871947674", rhs: "1", div: "6871947674", mod: "0") + self.divModTest(lhs: "6871947674", rhs: "-1", div: "-6871947674", mod: "0") + self.divModTest(lhs: "6871947674", rhs: "8589934592", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "-8589934592", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "7730941133", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "-7730941133", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "6871947674", div: "1", mod: "0") + self.divModTest(lhs: "6871947674", rhs: "-6871947674", div: "-1", mod: "0") + self.divModTest(lhs: "6871947674", rhs: "6012954215", div: "1", mod: "858993459") + self.divModTest(lhs: "6871947674", rhs: "-6012954215", div: "-1", mod: "858993459") + self.divModTest(lhs: "6871947674", rhs: "5153960756", div: "1", mod: "1717986918") + self.divModTest(lhs: "6871947674", rhs: "-5153960756", div: "-1", mod: "1717986918") + self.divModTest(lhs: "6871947674", rhs: "4294967297", div: "1", mod: "2576980377") + self.divModTest(lhs: "6871947674", rhs: "-4294967297", div: "-1", mod: "2576980377") + self.divModTest(lhs: "6871947674", rhs: "3435973838", div: "1", mod: "3435973836") + self.divModTest(lhs: "6871947674", rhs: "-3435973838", div: "-1", mod: "3435973836") + self.divModTest(lhs: "6871947674", rhs: "2576980379", div: "2", mod: "1717986916") + self.divModTest(lhs: "6871947674", rhs: "-2576980379", div: "-2", mod: "1717986916") + self.divModTest(lhs: "6871947674", rhs: "1717986920", div: "3", mod: "1717986914") + self.divModTest(lhs: "6871947674", rhs: "-1717986920", div: "-3", mod: "1717986914") + self.divModTest(lhs: "6871947674", rhs: "858993461", div: "7", mod: "858993447") + self.divModTest(lhs: "6871947674", rhs: "-858993461", div: "-7", mod: "858993447") + self.divModTest(lhs: "-6871947674", rhs: "1", div: "-6871947674", mod: "0") + self.divModTest(lhs: "-6871947674", rhs: "-1", div: "6871947674", mod: "0") + self.divModTest(lhs: "-6871947674", rhs: "8589934592", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "-8589934592", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "7730941133", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "-7730941133", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "6871947674", div: "-1", mod: "0") + self.divModTest(lhs: "-6871947674", rhs: "-6871947674", div: "1", mod: "0") + self.divModTest(lhs: "-6871947674", rhs: "6012954215", div: "-1", mod: "-858993459") + self.divModTest(lhs: "-6871947674", rhs: "-6012954215", div: "1", mod: "-858993459") + self.divModTest(lhs: "-6871947674", rhs: "5153960756", div: "-1", mod: "-1717986918") + self.divModTest(lhs: "-6871947674", rhs: "-5153960756", div: "1", mod: "-1717986918") + self.divModTest(lhs: "-6871947674", rhs: "4294967297", div: "-1", mod: "-2576980377") + self.divModTest(lhs: "-6871947674", rhs: "-4294967297", div: "1", mod: "-2576980377") + self.divModTest(lhs: "-6871947674", rhs: "3435973838", div: "-1", mod: "-3435973836") + self.divModTest(lhs: "-6871947674", rhs: "-3435973838", div: "1", mod: "-3435973836") + self.divModTest(lhs: "-6871947674", rhs: "2576980379", div: "-2", mod: "-1717986916") + self.divModTest(lhs: "-6871947674", rhs: "-2576980379", div: "2", mod: "-1717986916") + self.divModTest(lhs: "-6871947674", rhs: "1717986920", div: "-3", mod: "-1717986914") + self.divModTest(lhs: "-6871947674", rhs: "-1717986920", div: "3", mod: "-1717986914") + self.divModTest(lhs: "-6871947674", rhs: "858993461", div: "-7", mod: "-858993447") + self.divModTest(lhs: "-6871947674", rhs: "-858993461", div: "7", mod: "-858993447") + self.divModTest(lhs: "6012954215", rhs: "1", div: "6012954215", mod: "0") + self.divModTest(lhs: "6012954215", rhs: "-1", div: "-6012954215", mod: "0") + self.divModTest(lhs: "6012954215", rhs: "8589934592", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-8589934592", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "7730941133", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-7730941133", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "6871947674", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-6871947674", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "6012954215", div: "1", mod: "0") + self.divModTest(lhs: "6012954215", rhs: "-6012954215", div: "-1", mod: "0") + self.divModTest(lhs: "6012954215", rhs: "5153960756", div: "1", mod: "858993459") + self.divModTest(lhs: "6012954215", rhs: "-5153960756", div: "-1", mod: "858993459") + self.divModTest(lhs: "6012954215", rhs: "4294967297", div: "1", mod: "1717986918") + self.divModTest(lhs: "6012954215", rhs: "-4294967297", div: "-1", mod: "1717986918") + self.divModTest(lhs: "6012954215", rhs: "3435973838", div: "1", mod: "2576980377") + self.divModTest(lhs: "6012954215", rhs: "-3435973838", div: "-1", mod: "2576980377") + self.divModTest(lhs: "6012954215", rhs: "2576980379", div: "2", mod: "858993457") + self.divModTest(lhs: "6012954215", rhs: "-2576980379", div: "-2", mod: "858993457") + self.divModTest(lhs: "6012954215", rhs: "1717986920", div: "3", mod: "858993455") + self.divModTest(lhs: "6012954215", rhs: "-1717986920", div: "-3", mod: "858993455") + self.divModTest(lhs: "6012954215", rhs: "858993461", div: "6", mod: "858993449") + self.divModTest(lhs: "6012954215", rhs: "-858993461", div: "-6", mod: "858993449") + self.divModTest(lhs: "-6012954215", rhs: "1", div: "-6012954215", mod: "0") + self.divModTest(lhs: "-6012954215", rhs: "-1", div: "6012954215", mod: "0") + self.divModTest(lhs: "-6012954215", rhs: "8589934592", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-8589934592", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "7730941133", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-7730941133", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "6871947674", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-6871947674", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "6012954215", div: "-1", mod: "0") + self.divModTest(lhs: "-6012954215", rhs: "-6012954215", div: "1", mod: "0") + self.divModTest(lhs: "-6012954215", rhs: "5153960756", div: "-1", mod: "-858993459") + self.divModTest(lhs: "-6012954215", rhs: "-5153960756", div: "1", mod: "-858993459") + self.divModTest(lhs: "-6012954215", rhs: "4294967297", div: "-1", mod: "-1717986918") + self.divModTest(lhs: "-6012954215", rhs: "-4294967297", div: "1", mod: "-1717986918") + self.divModTest(lhs: "-6012954215", rhs: "3435973838", div: "-1", mod: "-2576980377") + self.divModTest(lhs: "-6012954215", rhs: "-3435973838", div: "1", mod: "-2576980377") + self.divModTest(lhs: "-6012954215", rhs: "2576980379", div: "-2", mod: "-858993457") + self.divModTest(lhs: "-6012954215", rhs: "-2576980379", div: "2", mod: "-858993457") + self.divModTest(lhs: "-6012954215", rhs: "1717986920", div: "-3", mod: "-858993455") + self.divModTest(lhs: "-6012954215", rhs: "-1717986920", div: "3", mod: "-858993455") + self.divModTest(lhs: "-6012954215", rhs: "858993461", div: "-6", mod: "-858993449") + self.divModTest(lhs: "-6012954215", rhs: "-858993461", div: "6", mod: "-858993449") + self.divModTest(lhs: "5153960756", rhs: "1", div: "5153960756", mod: "0") + self.divModTest(lhs: "5153960756", rhs: "-1", div: "-5153960756", mod: "0") + self.divModTest(lhs: "5153960756", rhs: "8589934592", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-8589934592", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "7730941133", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-7730941133", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "6871947674", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-6871947674", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "6012954215", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-6012954215", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "5153960756", div: "1", mod: "0") + self.divModTest(lhs: "5153960756", rhs: "-5153960756", div: "-1", mod: "0") + self.divModTest(lhs: "5153960756", rhs: "4294967297", div: "1", mod: "858993459") + self.divModTest(lhs: "5153960756", rhs: "-4294967297", div: "-1", mod: "858993459") + self.divModTest(lhs: "5153960756", rhs: "3435973838", div: "1", mod: "1717986918") + self.divModTest(lhs: "5153960756", rhs: "-3435973838", div: "-1", mod: "1717986918") + self.divModTest(lhs: "5153960756", rhs: "2576980379", div: "1", mod: "2576980377") + self.divModTest(lhs: "5153960756", rhs: "-2576980379", div: "-1", mod: "2576980377") + self.divModTest(lhs: "5153960756", rhs: "1717986920", div: "2", mod: "1717986916") + self.divModTest(lhs: "5153960756", rhs: "-1717986920", div: "-2", mod: "1717986916") + self.divModTest(lhs: "5153960756", rhs: "858993461", div: "5", mod: "858993451") + self.divModTest(lhs: "5153960756", rhs: "-858993461", div: "-5", mod: "858993451") + self.divModTest(lhs: "-5153960756", rhs: "1", div: "-5153960756", mod: "0") + self.divModTest(lhs: "-5153960756", rhs: "-1", div: "5153960756", mod: "0") + self.divModTest(lhs: "-5153960756", rhs: "8589934592", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-8589934592", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "7730941133", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-7730941133", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "6871947674", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-6871947674", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "6012954215", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-6012954215", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "5153960756", div: "-1", mod: "0") + self.divModTest(lhs: "-5153960756", rhs: "-5153960756", div: "1", mod: "0") + self.divModTest(lhs: "-5153960756", rhs: "4294967297", div: "-1", mod: "-858993459") + self.divModTest(lhs: "-5153960756", rhs: "-4294967297", div: "1", mod: "-858993459") + self.divModTest(lhs: "-5153960756", rhs: "3435973838", div: "-1", mod: "-1717986918") + self.divModTest(lhs: "-5153960756", rhs: "-3435973838", div: "1", mod: "-1717986918") + self.divModTest(lhs: "-5153960756", rhs: "2576980379", div: "-1", mod: "-2576980377") + self.divModTest(lhs: "-5153960756", rhs: "-2576980379", div: "1", mod: "-2576980377") + self.divModTest(lhs: "-5153960756", rhs: "1717986920", div: "-2", mod: "-1717986916") + self.divModTest(lhs: "-5153960756", rhs: "-1717986920", div: "2", mod: "-1717986916") + self.divModTest(lhs: "-5153960756", rhs: "858993461", div: "-5", mod: "-858993451") + self.divModTest(lhs: "-5153960756", rhs: "-858993461", div: "5", mod: "-858993451") + self.divModTest(lhs: "4294967297", rhs: "1", div: "4294967297", mod: "0") + self.divModTest(lhs: "4294967297", rhs: "-1", div: "-4294967297", mod: "0") + self.divModTest(lhs: "4294967297", rhs: "8589934592", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-8589934592", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "7730941133", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-7730941133", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "6871947674", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-6871947674", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "6012954215", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-6012954215", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "5153960756", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-5153960756", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "4294967297", div: "1", mod: "0") + self.divModTest(lhs: "4294967297", rhs: "-4294967297", div: "-1", mod: "0") + self.divModTest(lhs: "4294967297", rhs: "3435973838", div: "1", mod: "858993459") + self.divModTest(lhs: "4294967297", rhs: "-3435973838", div: "-1", mod: "858993459") + self.divModTest(lhs: "4294967297", rhs: "2576980379", div: "1", mod: "1717986918") + self.divModTest(lhs: "4294967297", rhs: "-2576980379", div: "-1", mod: "1717986918") + self.divModTest(lhs: "4294967297", rhs: "1717986920", div: "2", mod: "858993457") + self.divModTest(lhs: "4294967297", rhs: "-1717986920", div: "-2", mod: "858993457") + self.divModTest(lhs: "4294967297", rhs: "858993461", div: "4", mod: "858993453") + self.divModTest(lhs: "4294967297", rhs: "-858993461", div: "-4", mod: "858993453") + self.divModTest(lhs: "-4294967297", rhs: "1", div: "-4294967297", mod: "0") + self.divModTest(lhs: "-4294967297", rhs: "-1", div: "4294967297", mod: "0") + self.divModTest(lhs: "-4294967297", rhs: "8589934592", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-8589934592", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "7730941133", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-7730941133", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "6871947674", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-6871947674", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "6012954215", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-6012954215", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "5153960756", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-5153960756", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "4294967297", div: "-1", mod: "0") + self.divModTest(lhs: "-4294967297", rhs: "-4294967297", div: "1", mod: "0") + self.divModTest(lhs: "-4294967297", rhs: "3435973838", div: "-1", mod: "-858993459") + self.divModTest(lhs: "-4294967297", rhs: "-3435973838", div: "1", mod: "-858993459") + self.divModTest(lhs: "-4294967297", rhs: "2576980379", div: "-1", mod: "-1717986918") + self.divModTest(lhs: "-4294967297", rhs: "-2576980379", div: "1", mod: "-1717986918") + self.divModTest(lhs: "-4294967297", rhs: "1717986920", div: "-2", mod: "-858993457") + self.divModTest(lhs: "-4294967297", rhs: "-1717986920", div: "2", mod: "-858993457") + self.divModTest(lhs: "-4294967297", rhs: "858993461", div: "-4", mod: "-858993453") + self.divModTest(lhs: "-4294967297", rhs: "-858993461", div: "4", mod: "-858993453") + self.divModTest(lhs: "3435973838", rhs: "1", div: "3435973838", mod: "0") + self.divModTest(lhs: "3435973838", rhs: "-1", div: "-3435973838", mod: "0") + self.divModTest(lhs: "3435973838", rhs: "8589934592", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-8589934592", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "7730941133", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-7730941133", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "6871947674", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-6871947674", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "6012954215", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-6012954215", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "5153960756", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-5153960756", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "4294967297", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-4294967297", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "3435973838", div: "1", mod: "0") + self.divModTest(lhs: "3435973838", rhs: "-3435973838", div: "-1", mod: "0") + self.divModTest(lhs: "3435973838", rhs: "2576980379", div: "1", mod: "858993459") + self.divModTest(lhs: "3435973838", rhs: "-2576980379", div: "-1", mod: "858993459") + self.divModTest(lhs: "3435973838", rhs: "1717986920", div: "1", mod: "1717986918") + self.divModTest(lhs: "3435973838", rhs: "-1717986920", div: "-1", mod: "1717986918") + self.divModTest(lhs: "3435973838", rhs: "858993461", div: "3", mod: "858993455") + self.divModTest(lhs: "3435973838", rhs: "-858993461", div: "-3", mod: "858993455") + self.divModTest(lhs: "-3435973838", rhs: "1", div: "-3435973838", mod: "0") + self.divModTest(lhs: "-3435973838", rhs: "-1", div: "3435973838", mod: "0") + self.divModTest(lhs: "-3435973838", rhs: "8589934592", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-8589934592", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "7730941133", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-7730941133", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "6871947674", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-6871947674", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "6012954215", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-6012954215", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "5153960756", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-5153960756", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "4294967297", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-4294967297", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "3435973838", div: "-1", mod: "0") + self.divModTest(lhs: "-3435973838", rhs: "-3435973838", div: "1", mod: "0") + self.divModTest(lhs: "-3435973838", rhs: "2576980379", div: "-1", mod: "-858993459") + self.divModTest(lhs: "-3435973838", rhs: "-2576980379", div: "1", mod: "-858993459") + self.divModTest(lhs: "-3435973838", rhs: "1717986920", div: "-1", mod: "-1717986918") + self.divModTest(lhs: "-3435973838", rhs: "-1717986920", div: "1", mod: "-1717986918") + self.divModTest(lhs: "-3435973838", rhs: "858993461", div: "-3", mod: "-858993455") + self.divModTest(lhs: "-3435973838", rhs: "-858993461", div: "3", mod: "-858993455") + self.divModTest(lhs: "2576980379", rhs: "1", div: "2576980379", mod: "0") + self.divModTest(lhs: "2576980379", rhs: "-1", div: "-2576980379", mod: "0") + self.divModTest(lhs: "2576980379", rhs: "8589934592", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-8589934592", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "7730941133", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-7730941133", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "6871947674", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-6871947674", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "6012954215", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-6012954215", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "5153960756", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-5153960756", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "4294967297", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-4294967297", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "3435973838", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-3435973838", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "2576980379", div: "1", mod: "0") + self.divModTest(lhs: "2576980379", rhs: "-2576980379", div: "-1", mod: "0") + self.divModTest(lhs: "2576980379", rhs: "1717986920", div: "1", mod: "858993459") + self.divModTest(lhs: "2576980379", rhs: "-1717986920", div: "-1", mod: "858993459") + self.divModTest(lhs: "2576980379", rhs: "858993461", div: "2", mod: "858993457") + self.divModTest(lhs: "2576980379", rhs: "-858993461", div: "-2", mod: "858993457") + self.divModTest(lhs: "-2576980379", rhs: "1", div: "-2576980379", mod: "0") + self.divModTest(lhs: "-2576980379", rhs: "-1", div: "2576980379", mod: "0") + self.divModTest(lhs: "-2576980379", rhs: "8589934592", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-8589934592", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "7730941133", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-7730941133", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "6871947674", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-6871947674", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "6012954215", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-6012954215", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "5153960756", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-5153960756", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "4294967297", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-4294967297", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "3435973838", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-3435973838", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "2576980379", div: "-1", mod: "0") + self.divModTest(lhs: "-2576980379", rhs: "-2576980379", div: "1", mod: "0") + self.divModTest(lhs: "-2576980379", rhs: "1717986920", div: "-1", mod: "-858993459") + self.divModTest(lhs: "-2576980379", rhs: "-1717986920", div: "1", mod: "-858993459") + self.divModTest(lhs: "-2576980379", rhs: "858993461", div: "-2", mod: "-858993457") + self.divModTest(lhs: "-2576980379", rhs: "-858993461", div: "2", mod: "-858993457") + 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: "8589934592", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "-8589934592", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "7730941133", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "-7730941133", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "6871947674", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "-6871947674", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "6012954215", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "-6012954215", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "5153960756", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "-5153960756", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "4294967297", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "-4294967297", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "3435973838", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "-3435973838", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "2576980379", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "-2576980379", div: "0", mod: "1717986920") + self.divModTest(lhs: "1717986920", rhs: "1717986920", div: "1", mod: "0") + self.divModTest(lhs: "1717986920", rhs: "-1717986920", div: "-1", mod: "0") + self.divModTest(lhs: "1717986920", rhs: "858993461", div: "1", mod: "858993459") + self.divModTest(lhs: "1717986920", rhs: "-858993461", div: "-1", mod: "858993459") + 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: "8589934592", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-8589934592", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "7730941133", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-7730941133", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "6871947674", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-6871947674", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "6012954215", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-6012954215", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "5153960756", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-5153960756", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "4294967297", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-4294967297", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "3435973838", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-3435973838", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "2576980379", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "-2576980379", div: "0", mod: "-1717986920") + self.divModTest(lhs: "-1717986920", rhs: "1717986920", div: "-1", mod: "0") + self.divModTest(lhs: "-1717986920", rhs: "-1717986920", div: "1", mod: "0") + self.divModTest(lhs: "-1717986920", rhs: "858993461", div: "-1", mod: "-858993459") + self.divModTest(lhs: "-1717986920", rhs: "-858993461", div: "1", mod: "-858993459") + self.divModTest(lhs: "858993461", rhs: "1", div: "858993461", mod: "0") + self.divModTest(lhs: "858993461", rhs: "-1", div: "-858993461", mod: "0") + self.divModTest(lhs: "858993461", rhs: "8589934592", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-8589934592", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "7730941133", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-7730941133", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "6871947674", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-6871947674", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "6012954215", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-6012954215", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "5153960756", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-5153960756", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "4294967297", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-4294967297", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "3435973838", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-3435973838", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "2576980379", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-2576980379", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "1717986920", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-1717986920", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "858993461", div: "1", mod: "0") + self.divModTest(lhs: "858993461", rhs: "-858993461", div: "-1", mod: "0") + self.divModTest(lhs: "-858993461", rhs: "1", div: "-858993461", mod: "0") + self.divModTest(lhs: "-858993461", rhs: "-1", div: "858993461", mod: "0") + self.divModTest(lhs: "-858993461", rhs: "8589934592", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-8589934592", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "7730941133", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-7730941133", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "6871947674", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-6871947674", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "6012954215", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-6012954215", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "5153960756", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-5153960756", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "4294967297", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-4294967297", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "3435973838", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-3435973838", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "2576980379", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-2576980379", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "1717986920", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-1717986920", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "858993461", div: "-1", mod: "0") + self.divModTest(lhs: "-858993461", rhs: "-858993461", div: "1", mod: "0") + } + + func test_divMod_int_big() { + 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: "8589934592", rhs: "1", div: "8589934592", mod: "0") + self.divModTest(lhs: "8589934592", rhs: "-1", div: "-8589934592", mod: "0") + self.divModTest(lhs: "8589934592", rhs: "18446744073709551615", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "-18446744073709551615", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "18446744073709551617", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "-18446744073709551617", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "340282366920938463481821351505477763074", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "18446744073709551623", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "-18446744073709551623", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "340282366920938463592501815947735072770", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "18446744073709551629", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "-18446744073709551629", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "340282366920938463703182280389992382466", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "18446744073709551635", div: "0", mod: "8589934592") + self.divModTest(lhs: "8589934592", rhs: "-18446744073709551635", div: "0", mod: "8589934592") + self.divModTest(lhs: "-8589934592", rhs: "1", div: "-8589934592", mod: "0") + self.divModTest(lhs: "-8589934592", rhs: "-1", div: "8589934592", mod: "0") + self.divModTest(lhs: "-8589934592", rhs: "18446744073709551615", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "-18446744073709551615", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "18446744073709551617", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "-18446744073709551617", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "18446744073709551623", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "-18446744073709551623", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "18446744073709551629", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "-18446744073709551629", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "18446744073709551635", div: "0", mod: "-8589934592") + self.divModTest(lhs: "-8589934592", rhs: "-18446744073709551635", div: "0", mod: "-8589934592") + self.divModTest(lhs: "7730941133", rhs: "1", div: "7730941133", mod: "0") + self.divModTest(lhs: "7730941133", rhs: "-1", div: "-7730941133", mod: "0") + self.divModTest(lhs: "7730941133", rhs: "18446744073709551615", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "-18446744073709551615", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "18446744073709551617", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "-18446744073709551617", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "340282366920938463481821351505477763074", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "18446744073709551623", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "-18446744073709551623", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "340282366920938463592501815947735072770", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "18446744073709551629", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "-18446744073709551629", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "340282366920938463703182280389992382466", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "18446744073709551635", div: "0", mod: "7730941133") + self.divModTest(lhs: "7730941133", rhs: "-18446744073709551635", div: "0", mod: "7730941133") + self.divModTest(lhs: "-7730941133", rhs: "1", div: "-7730941133", mod: "0") + self.divModTest(lhs: "-7730941133", rhs: "-1", div: "7730941133", mod: "0") + self.divModTest(lhs: "-7730941133", rhs: "18446744073709551615", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "-18446744073709551615", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "18446744073709551617", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "-18446744073709551617", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "18446744073709551623", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "-18446744073709551623", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "18446744073709551629", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "-18446744073709551629", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "18446744073709551635", div: "0", mod: "-7730941133") + self.divModTest(lhs: "-7730941133", rhs: "-18446744073709551635", div: "0", mod: "-7730941133") + self.divModTest(lhs: "6871947674", rhs: "1", div: "6871947674", mod: "0") + self.divModTest(lhs: "6871947674", rhs: "-1", div: "-6871947674", mod: "0") + self.divModTest(lhs: "6871947674", rhs: "18446744073709551615", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "-18446744073709551615", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "18446744073709551617", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "-18446744073709551617", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "340282366920938463481821351505477763074", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "18446744073709551623", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "-18446744073709551623", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "340282366920938463592501815947735072770", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "18446744073709551629", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "-18446744073709551629", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "340282366920938463703182280389992382466", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "18446744073709551635", div: "0", mod: "6871947674") + self.divModTest(lhs: "6871947674", rhs: "-18446744073709551635", div: "0", mod: "6871947674") + self.divModTest(lhs: "-6871947674", rhs: "1", div: "-6871947674", mod: "0") + self.divModTest(lhs: "-6871947674", rhs: "-1", div: "6871947674", mod: "0") + self.divModTest(lhs: "-6871947674", rhs: "18446744073709551615", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "-18446744073709551615", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "18446744073709551617", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "-18446744073709551617", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "18446744073709551623", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "-18446744073709551623", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "18446744073709551629", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "-18446744073709551629", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "18446744073709551635", div: "0", mod: "-6871947674") + self.divModTest(lhs: "-6871947674", rhs: "-18446744073709551635", div: "0", mod: "-6871947674") + self.divModTest(lhs: "6012954215", rhs: "1", div: "6012954215", mod: "0") + self.divModTest(lhs: "6012954215", rhs: "-1", div: "-6012954215", mod: "0") + self.divModTest(lhs: "6012954215", rhs: "18446744073709551615", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-18446744073709551615", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "18446744073709551617", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-18446744073709551617", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "340282366920938463481821351505477763074", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "18446744073709551623", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-18446744073709551623", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "340282366920938463592501815947735072770", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "18446744073709551629", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-18446744073709551629", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "340282366920938463703182280389992382466", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "18446744073709551635", div: "0", mod: "6012954215") + self.divModTest(lhs: "6012954215", rhs: "-18446744073709551635", div: "0", mod: "6012954215") + self.divModTest(lhs: "-6012954215", rhs: "1", div: "-6012954215", mod: "0") + self.divModTest(lhs: "-6012954215", rhs: "-1", div: "6012954215", mod: "0") + self.divModTest(lhs: "-6012954215", rhs: "18446744073709551615", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-18446744073709551615", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "18446744073709551617", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-18446744073709551617", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "18446744073709551623", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-18446744073709551623", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "18446744073709551629", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-18446744073709551629", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "18446744073709551635", div: "0", mod: "-6012954215") + self.divModTest(lhs: "-6012954215", rhs: "-18446744073709551635", div: "0", mod: "-6012954215") + self.divModTest(lhs: "5153960756", rhs: "1", div: "5153960756", mod: "0") + self.divModTest(lhs: "5153960756", rhs: "-1", div: "-5153960756", mod: "0") + self.divModTest(lhs: "5153960756", rhs: "18446744073709551615", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-18446744073709551615", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "18446744073709551617", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-18446744073709551617", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "340282366920938463481821351505477763074", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "18446744073709551623", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-18446744073709551623", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "340282366920938463592501815947735072770", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "18446744073709551629", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-18446744073709551629", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "340282366920938463703182280389992382466", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "18446744073709551635", div: "0", mod: "5153960756") + self.divModTest(lhs: "5153960756", rhs: "-18446744073709551635", div: "0", mod: "5153960756") + self.divModTest(lhs: "-5153960756", rhs: "1", div: "-5153960756", mod: "0") + self.divModTest(lhs: "-5153960756", rhs: "-1", div: "5153960756", mod: "0") + self.divModTest(lhs: "-5153960756", rhs: "18446744073709551615", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-18446744073709551615", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "18446744073709551617", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-18446744073709551617", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "18446744073709551623", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-18446744073709551623", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "18446744073709551629", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-18446744073709551629", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "18446744073709551635", div: "0", mod: "-5153960756") + self.divModTest(lhs: "-5153960756", rhs: "-18446744073709551635", div: "0", mod: "-5153960756") + self.divModTest(lhs: "4294967297", rhs: "1", div: "4294967297", mod: "0") + self.divModTest(lhs: "4294967297", rhs: "-1", div: "-4294967297", mod: "0") + self.divModTest(lhs: "4294967297", rhs: "18446744073709551615", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-18446744073709551615", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "18446744073709551617", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-18446744073709551617", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "340282366920938463481821351505477763074", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "18446744073709551623", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-18446744073709551623", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "340282366920938463592501815947735072770", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "18446744073709551629", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-18446744073709551629", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "340282366920938463703182280389992382466", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "18446744073709551635", div: "0", mod: "4294967297") + self.divModTest(lhs: "4294967297", rhs: "-18446744073709551635", div: "0", mod: "4294967297") + self.divModTest(lhs: "-4294967297", rhs: "1", div: "-4294967297", mod: "0") + self.divModTest(lhs: "-4294967297", rhs: "-1", div: "4294967297", mod: "0") + self.divModTest(lhs: "-4294967297", rhs: "18446744073709551615", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-18446744073709551615", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "18446744073709551617", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-18446744073709551617", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "18446744073709551623", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-18446744073709551623", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "18446744073709551629", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-18446744073709551629", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "18446744073709551635", div: "0", mod: "-4294967297") + self.divModTest(lhs: "-4294967297", rhs: "-18446744073709551635", div: "0", mod: "-4294967297") + self.divModTest(lhs: "3435973838", rhs: "1", div: "3435973838", mod: "0") + self.divModTest(lhs: "3435973838", rhs: "-1", div: "-3435973838", mod: "0") + self.divModTest(lhs: "3435973838", rhs: "18446744073709551615", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-18446744073709551615", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "18446744073709551617", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-18446744073709551617", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "340282366920938463481821351505477763074", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "18446744073709551623", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-18446744073709551623", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "340282366920938463592501815947735072770", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "18446744073709551629", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-18446744073709551629", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "340282366920938463703182280389992382466", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "18446744073709551635", div: "0", mod: "3435973838") + self.divModTest(lhs: "3435973838", rhs: "-18446744073709551635", div: "0", mod: "3435973838") + self.divModTest(lhs: "-3435973838", rhs: "1", div: "-3435973838", mod: "0") + self.divModTest(lhs: "-3435973838", rhs: "-1", div: "3435973838", mod: "0") + self.divModTest(lhs: "-3435973838", rhs: "18446744073709551615", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-18446744073709551615", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "18446744073709551617", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-18446744073709551617", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "18446744073709551623", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-18446744073709551623", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "18446744073709551629", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-18446744073709551629", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "18446744073709551635", div: "0", mod: "-3435973838") + self.divModTest(lhs: "-3435973838", rhs: "-18446744073709551635", div: "0", mod: "-3435973838") + self.divModTest(lhs: "2576980379", rhs: "1", div: "2576980379", mod: "0") + self.divModTest(lhs: "2576980379", rhs: "-1", div: "-2576980379", mod: "0") + self.divModTest(lhs: "2576980379", rhs: "18446744073709551615", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-18446744073709551615", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "18446744073709551617", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-18446744073709551617", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "340282366920938463481821351505477763074", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "18446744073709551623", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-18446744073709551623", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "340282366920938463592501815947735072770", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "18446744073709551629", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-18446744073709551629", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "340282366920938463703182280389992382466", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "18446744073709551635", div: "0", mod: "2576980379") + self.divModTest(lhs: "2576980379", rhs: "-18446744073709551635", div: "0", mod: "2576980379") + self.divModTest(lhs: "-2576980379", rhs: "1", div: "-2576980379", mod: "0") + self.divModTest(lhs: "-2576980379", rhs: "-1", div: "2576980379", mod: "0") + self.divModTest(lhs: "-2576980379", rhs: "18446744073709551615", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-18446744073709551615", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "18446744073709551617", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-18446744073709551617", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "18446744073709551623", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-18446744073709551623", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "18446744073709551629", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-18446744073709551629", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "18446744073709551635", div: "0", mod: "-2576980379") + self.divModTest(lhs: "-2576980379", rhs: "-18446744073709551635", div: "0", mod: "-2576980379") + 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: "-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: "858993461", rhs: "1", div: "858993461", mod: "0") + self.divModTest(lhs: "858993461", rhs: "-1", div: "-858993461", mod: "0") + self.divModTest(lhs: "858993461", rhs: "18446744073709551615", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-18446744073709551615", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "18446744073709551617", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-18446744073709551617", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "340282366920938463481821351505477763074", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "18446744073709551623", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-18446744073709551623", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "340282366920938463592501815947735072770", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "18446744073709551629", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-18446744073709551629", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "340282366920938463703182280389992382466", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "18446744073709551635", div: "0", mod: "858993461") + self.divModTest(lhs: "858993461", rhs: "-18446744073709551635", div: "0", mod: "858993461") + self.divModTest(lhs: "-858993461", rhs: "1", div: "-858993461", mod: "0") + self.divModTest(lhs: "-858993461", rhs: "-1", div: "858993461", mod: "0") + self.divModTest(lhs: "-858993461", rhs: "18446744073709551615", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-18446744073709551615", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "18446744073709551617", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-18446744073709551617", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "340282366920938463481821351505477763074", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-340282366920938463481821351505477763074", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "18446744073709551623", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-18446744073709551623", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "340282366920938463592501815947735072770", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-340282366920938463592501815947735072770", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "18446744073709551629", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-18446744073709551629", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "340282366920938463703182280389992382466", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-340282366920938463703182280389992382466", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "18446744073709551635", div: "0", mod: "-858993461") + self.divModTest(lhs: "-858993461", rhs: "-18446744073709551635", div: "0", mod: "-858993461") + } + + func test_divMod_big_int() { + 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: "8589934592", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-8589934592", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "7730941133", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-7730941133", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "6871947674", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-6871947674", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "6012954215", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-6012954215", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "5153960756", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-5153960756", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "4294967297", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-4294967297", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "3435973838", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-3435973838", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "2576980379", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-2576980379", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "1717986920", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-1717986920", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "858993461", div: "0", mod: "0") + self.divModTest(lhs: "0", rhs: "-858993461", 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: "8589934592", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-8589934592", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "7730941133", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-7730941133", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "6871947674", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-6871947674", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "6012954215", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-6012954215", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "5153960756", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-5153960756", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "4294967297", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-4294967297", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "3435973838", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-3435973838", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "2576980379", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-2576980379", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "1717986920", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-1717986920", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "858993461", div: "0", mod: "1") + self.divModTest(lhs: "1", rhs: "-858993461", 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: "8589934592", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-8589934592", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "7730941133", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-7730941133", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "6871947674", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-6871947674", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "6012954215", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-6012954215", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "5153960756", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-5153960756", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "4294967297", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-4294967297", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "3435973838", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-3435973838", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "2576980379", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-2576980379", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "1717986920", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-1717986920", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "858993461", div: "0", mod: "-1") + self.divModTest(lhs: "-1", rhs: "-858993461", 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: "8589934592", div: "2147483647", mod: "8589934591") + self.divModTest(lhs: "18446744073709551615", rhs: "-8589934592", div: "-2147483647", mod: "8589934591") + self.divModTest(lhs: "18446744073709551615", rhs: "7730941133", div: "2386092942", mod: "1240768329") + self.divModTest(lhs: "18446744073709551615", rhs: "-7730941133", div: "-2386092942", mod: "1240768329") + self.divModTest(lhs: "18446744073709551615", rhs: "6871947674", div: "2684354559", mod: "5798205849") + self.divModTest(lhs: "18446744073709551615", rhs: "-6871947674", div: "-2684354559", mod: "5798205849") + self.divModTest(lhs: "18446744073709551615", rhs: "6012954215", div: "3067833782", mod: "3313260485") + self.divModTest(lhs: "18446744073709551615", rhs: "-6012954215", div: "-3067833782", mod: "3313260485") + self.divModTest(lhs: "18446744073709551615", rhs: "5153960756", div: "3579139412", mod: "4008636143") + self.divModTest(lhs: "18446744073709551615", rhs: "-5153960756", div: "-3579139412", mod: "4008636143") + self.divModTest(lhs: "18446744073709551615", rhs: "4294967297", div: "4294967295", mod: "0") + self.divModTest(lhs: "18446744073709551615", rhs: "-4294967297", div: "-4294967295", mod: "0") + self.divModTest(lhs: "18446744073709551615", rhs: "3435973838", div: "5368709118", mod: "429496731") + self.divModTest(lhs: "18446744073709551615", rhs: "-3435973838", div: "-5368709118", mod: "429496731") + self.divModTest(lhs: "18446744073709551615", rhs: "2576980379", div: "7158278822", mod: "2004318077") + self.divModTest(lhs: "18446744073709551615", rhs: "-2576980379", div: "-7158278822", mod: "2004318077") + self.divModTest(lhs: "18446744073709551615", rhs: "1717986920", div: "10737418230", mod: "15") + self.divModTest(lhs: "18446744073709551615", rhs: "-1717986920", div: "-10737418230", mod: "15") + self.divModTest(lhs: "18446744073709551615", rhs: "858993461", div: "21474836435", mod: "80") + self.divModTest(lhs: "18446744073709551615", rhs: "-858993461", div: "-21474836435", mod: "80") + 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: "8589934592", div: "-2147483647", mod: "-8589934591") + self.divModTest(lhs: "-18446744073709551615", rhs: "-8589934592", div: "2147483647", mod: "-8589934591") + self.divModTest(lhs: "-18446744073709551615", rhs: "7730941133", div: "-2386092942", mod: "-1240768329") + self.divModTest(lhs: "-18446744073709551615", rhs: "-7730941133", div: "2386092942", mod: "-1240768329") + self.divModTest(lhs: "-18446744073709551615", rhs: "6871947674", div: "-2684354559", mod: "-5798205849") + self.divModTest(lhs: "-18446744073709551615", rhs: "-6871947674", div: "2684354559", mod: "-5798205849") + self.divModTest(lhs: "-18446744073709551615", rhs: "6012954215", div: "-3067833782", mod: "-3313260485") + self.divModTest(lhs: "-18446744073709551615", rhs: "-6012954215", div: "3067833782", mod: "-3313260485") + self.divModTest(lhs: "-18446744073709551615", rhs: "5153960756", div: "-3579139412", mod: "-4008636143") + self.divModTest(lhs: "-18446744073709551615", rhs: "-5153960756", div: "3579139412", mod: "-4008636143") + self.divModTest(lhs: "-18446744073709551615", rhs: "4294967297", div: "-4294967295", mod: "0") + self.divModTest(lhs: "-18446744073709551615", rhs: "-4294967297", div: "4294967295", mod: "0") + self.divModTest(lhs: "-18446744073709551615", rhs: "3435973838", div: "-5368709118", mod: "-429496731") + self.divModTest(lhs: "-18446744073709551615", rhs: "-3435973838", div: "5368709118", mod: "-429496731") + self.divModTest(lhs: "-18446744073709551615", rhs: "2576980379", div: "-7158278822", mod: "-2004318077") + self.divModTest(lhs: "-18446744073709551615", rhs: "-2576980379", div: "7158278822", mod: "-2004318077") + self.divModTest(lhs: "-18446744073709551615", rhs: "1717986920", div: "-10737418230", mod: "-15") + self.divModTest(lhs: "-18446744073709551615", rhs: "-1717986920", div: "10737418230", mod: "-15") + self.divModTest(lhs: "-18446744073709551615", rhs: "858993461", div: "-21474836435", mod: "-80") + self.divModTest(lhs: "-18446744073709551615", rhs: "-858993461", div: "21474836435", mod: "-80") + 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: "8589934592", div: "2147483648", mod: "1") + self.divModTest(lhs: "18446744073709551617", rhs: "-8589934592", div: "-2147483648", mod: "1") + self.divModTest(lhs: "18446744073709551617", rhs: "7730941133", div: "2386092942", mod: "1240768331") + self.divModTest(lhs: "18446744073709551617", rhs: "-7730941133", div: "-2386092942", mod: "1240768331") + self.divModTest(lhs: "18446744073709551617", rhs: "6871947674", div: "2684354559", mod: "5798205851") + self.divModTest(lhs: "18446744073709551617", rhs: "-6871947674", div: "-2684354559", mod: "5798205851") + self.divModTest(lhs: "18446744073709551617", rhs: "6012954215", div: "3067833782", mod: "3313260487") + self.divModTest(lhs: "18446744073709551617", rhs: "-6012954215", div: "-3067833782", mod: "3313260487") + self.divModTest(lhs: "18446744073709551617", rhs: "5153960756", div: "3579139412", mod: "4008636145") + self.divModTest(lhs: "18446744073709551617", rhs: "-5153960756", div: "-3579139412", mod: "4008636145") + self.divModTest(lhs: "18446744073709551617", rhs: "4294967297", div: "4294967295", mod: "2") + self.divModTest(lhs: "18446744073709551617", rhs: "-4294967297", div: "-4294967295", mod: "2") + self.divModTest(lhs: "18446744073709551617", rhs: "3435973838", div: "5368709118", mod: "429496733") + self.divModTest(lhs: "18446744073709551617", rhs: "-3435973838", div: "-5368709118", mod: "429496733") + self.divModTest(lhs: "18446744073709551617", rhs: "2576980379", div: "7158278822", mod: "2004318079") + self.divModTest(lhs: "18446744073709551617", rhs: "-2576980379", div: "-7158278822", mod: "2004318079") + self.divModTest(lhs: "18446744073709551617", rhs: "1717986920", div: "10737418230", mod: "17") + self.divModTest(lhs: "18446744073709551617", rhs: "-1717986920", div: "-10737418230", mod: "17") + self.divModTest(lhs: "18446744073709551617", rhs: "858993461", div: "21474836435", mod: "82") + self.divModTest(lhs: "18446744073709551617", rhs: "-858993461", div: "-21474836435", mod: "82") + 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: "8589934592", div: "-2147483648", mod: "-1") + self.divModTest(lhs: "-18446744073709551617", rhs: "-8589934592", div: "2147483648", mod: "-1") + self.divModTest(lhs: "-18446744073709551617", rhs: "7730941133", div: "-2386092942", mod: "-1240768331") + self.divModTest(lhs: "-18446744073709551617", rhs: "-7730941133", div: "2386092942", mod: "-1240768331") + self.divModTest(lhs: "-18446744073709551617", rhs: "6871947674", div: "-2684354559", mod: "-5798205851") + self.divModTest(lhs: "-18446744073709551617", rhs: "-6871947674", div: "2684354559", mod: "-5798205851") + self.divModTest(lhs: "-18446744073709551617", rhs: "6012954215", div: "-3067833782", mod: "-3313260487") + self.divModTest(lhs: "-18446744073709551617", rhs: "-6012954215", div: "3067833782", mod: "-3313260487") + self.divModTest(lhs: "-18446744073709551617", rhs: "5153960756", div: "-3579139412", mod: "-4008636145") + self.divModTest(lhs: "-18446744073709551617", rhs: "-5153960756", div: "3579139412", mod: "-4008636145") + self.divModTest(lhs: "-18446744073709551617", rhs: "4294967297", div: "-4294967295", mod: "-2") + self.divModTest(lhs: "-18446744073709551617", rhs: "-4294967297", div: "4294967295", mod: "-2") + self.divModTest(lhs: "-18446744073709551617", rhs: "3435973838", div: "-5368709118", mod: "-429496733") + self.divModTest(lhs: "-18446744073709551617", rhs: "-3435973838", div: "5368709118", mod: "-429496733") + self.divModTest(lhs: "-18446744073709551617", rhs: "2576980379", div: "-7158278822", mod: "-2004318079") + self.divModTest(lhs: "-18446744073709551617", rhs: "-2576980379", div: "7158278822", mod: "-2004318079") + self.divModTest(lhs: "-18446744073709551617", rhs: "1717986920", div: "-10737418230", mod: "-17") + self.divModTest(lhs: "-18446744073709551617", rhs: "-1717986920", div: "10737418230", mod: "-17") + self.divModTest(lhs: "-18446744073709551617", rhs: "858993461", div: "-21474836435", mod: "-82") + self.divModTest(lhs: "-18446744073709551617", rhs: "-858993461", div: "21474836435", mod: "-82") + 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: "8589934592", div: "39614081257132168798919458816", mod: "2") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-8589934592", div: "-39614081257132168798919458816", mod: "2") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "7730941133", div: "44015645840119277426377649732", mod: "492536718") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-7730941133", div: "-44015645840119277426377649732", mod: "492536718") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "6871947674", div: "49517601568532907237299978239", mod: "5731096988") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-6871947674", div: "-49517601568532907237299978239", mod: "5731096988") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "6012954215", div: "56591544647398992956047537691", mod: "6007945509") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-6012954215", div: "-56591544647398992956047537691", mod: "6007945509") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "5153960756", div: "66023468751638756847728964645", mod: "636291454") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-5153960756", div: "-66023468751638756847728964645", mod: "636291454") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "4294967297", div: "79228162495817593528424333310", mod: "4") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-4294967297", div: "-79228162495817593528424333310", mod: "4") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "3435973838", div: "99035203108242776871172833273", mod: "3113851300") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-3435973838", div: "-99035203108242776871172833273", mod: "3113851300") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "2576980379", div: "132046937452036557970945013355", mod: "1749801529") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-2576980379", div: "-132046937452036557970945013355", mod: "1749801529") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986920", div: "198070406101193403429300469590", mod: "274") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", div: "-198070406101193403429300469590", mod: "274") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "858993461", div: "396140811741218206411726516630", mod: "6644") + self.divModTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993461", div: "-396140811741218206411726516630", mod: "6644") + 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: "8589934592", div: "-39614081257132168798919458816", mod: "-2") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-8589934592", div: "39614081257132168798919458816", mod: "-2") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "7730941133", div: "-44015645840119277426377649732", mod: "-492536718") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-7730941133", div: "44015645840119277426377649732", mod: "-492536718") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "6871947674", div: "-49517601568532907237299978239", mod: "-5731096988") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6871947674", div: "49517601568532907237299978239", mod: "-5731096988") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "6012954215", div: "-56591544647398992956047537691", mod: "-6007945509") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6012954215", div: "56591544647398992956047537691", mod: "-6007945509") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "5153960756", div: "-66023468751638756847728964645", mod: "-636291454") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-5153960756", div: "66023468751638756847728964645", mod: "-636291454") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "4294967297", div: "-79228162495817593528424333310", mod: "-4") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-4294967297", div: "79228162495817593528424333310", mod: "-4") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "3435973838", div: "-99035203108242776871172833273", mod: "-3113851300") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-3435973838", div: "99035203108242776871172833273", mod: "-3113851300") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "2576980379", div: "-132046937452036557970945013355", mod: "-1749801529") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2576980379", div: "132046937452036557970945013355", mod: "-1749801529") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986920", div: "-198070406101193403429300469590", mod: "-274") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", div: "198070406101193403429300469590", mod: "-274") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993461", div: "-396140811741218206411726516630", mod: "-6644") + self.divModTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993461", div: "396140811741218206411726516630", mod: "-6644") + 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: "8589934592", div: "730750818665451459181070578872405847419362738176", mod: "5") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", div: "-730750818665451459181070578872405847419362738176", mod: "5") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", div: "811945354051718759157230560825374136633030538334", mod: "2407491775") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", div: "-811945354051718759157230560825374136633030538334", mod: "2407491775") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", div: "913438523278645204148036438766623726042454425600", mod: "935329797") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", div: "-913438523278645204148036438766623726042454425600", mod: "935329797") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", div: "1043929740846476870191228315722264873924482046842", mod: "3430045167") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", div: "-1043929740846476870191228315722264873924482046842", mod: "3430045167") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", div: "1217918030920040005930606693399033584533304101715", mod: "919087657") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", div: "-1217918030920040005930606693399033584533304101715", mod: "919087657") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", div: "1461501636990620551520430856740361192792257462270", mod: "7") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", div: "-1461501636990620551520430856740361192792257462270", mod: "7") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", div: "1826877046025599210198746035111558187309649100783", mod: "3248069043") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", div: "-1826877046025599210198746035111558187309649100783", mod: "3248069043") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", div: "2435836060894851215518841230979175935359598605331", mod: "109583748") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", div: "-2435836060894851215518841230979175935359598605331", mod: "109583748") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", div: "3653754089924433629865094756978442736345546749130", mod: "4597") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", div: "-3653754089924433629865094756978442736345546749130", mod: "4597") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", div: "7307508171341808112455880682250668894219507819110", mod: "544487") + self.divModTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", div: "-7307508171341808112455880682250668894219507819110", mod: "544487") + 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: "8589934592", div: "-730750818665451459181070578872405847419362738176", mod: "-5") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", div: "730750818665451459181070578872405847419362738176", mod: "-5") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", div: "-811945354051718759157230560825374136633030538334", mod: "-2407491775") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", div: "811945354051718759157230560825374136633030538334", mod: "-2407491775") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", div: "-913438523278645204148036438766623726042454425600", mod: "-935329797") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", div: "913438523278645204148036438766623726042454425600", mod: "-935329797") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", div: "-1043929740846476870191228315722264873924482046842", mod: "-3430045167") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", div: "1043929740846476870191228315722264873924482046842", mod: "-3430045167") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", div: "-1217918030920040005930606693399033584533304101715", mod: "-919087657") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", div: "1217918030920040005930606693399033584533304101715", mod: "-919087657") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", div: "-1461501636990620551520430856740361192792257462270", mod: "-7") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", div: "1461501636990620551520430856740361192792257462270", mod: "-7") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", div: "-1826877046025599210198746035111558187309649100783", mod: "-3248069043") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", div: "1826877046025599210198746035111558187309649100783", mod: "-3248069043") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", div: "-2435836060894851215518841230979175935359598605331", mod: "-109583748") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", div: "2435836060894851215518841230979175935359598605331", mod: "-109583748") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", div: "-3653754089924433629865094756978442736345546749130", mod: "-4597") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", div: "3653754089924433629865094756978442736345546749130", mod: "-4597") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", div: "-7307508171341808112455880682250668894219507819110", mod: "-544487") + self.divModTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", div: "7307508171341808112455880682250668894219507819110", mod: "-544487") + 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: "8589934592", div: "2147483648", mod: "7") + self.divModTest(lhs: "18446744073709551623", rhs: "-8589934592", div: "-2147483648", mod: "7") + self.divModTest(lhs: "18446744073709551623", rhs: "7730941133", div: "2386092942", mod: "1240768337") + self.divModTest(lhs: "18446744073709551623", rhs: "-7730941133", div: "-2386092942", mod: "1240768337") + self.divModTest(lhs: "18446744073709551623", rhs: "6871947674", div: "2684354559", mod: "5798205857") + self.divModTest(lhs: "18446744073709551623", rhs: "-6871947674", div: "-2684354559", mod: "5798205857") + self.divModTest(lhs: "18446744073709551623", rhs: "6012954215", div: "3067833782", mod: "3313260493") + self.divModTest(lhs: "18446744073709551623", rhs: "-6012954215", div: "-3067833782", mod: "3313260493") + self.divModTest(lhs: "18446744073709551623", rhs: "5153960756", div: "3579139412", mod: "4008636151") + self.divModTest(lhs: "18446744073709551623", rhs: "-5153960756", div: "-3579139412", mod: "4008636151") + self.divModTest(lhs: "18446744073709551623", rhs: "4294967297", div: "4294967295", mod: "8") + self.divModTest(lhs: "18446744073709551623", rhs: "-4294967297", div: "-4294967295", mod: "8") + self.divModTest(lhs: "18446744073709551623", rhs: "3435973838", div: "5368709118", mod: "429496739") + self.divModTest(lhs: "18446744073709551623", rhs: "-3435973838", div: "-5368709118", mod: "429496739") + self.divModTest(lhs: "18446744073709551623", rhs: "2576980379", div: "7158278822", mod: "2004318085") + self.divModTest(lhs: "18446744073709551623", rhs: "-2576980379", div: "-7158278822", mod: "2004318085") + self.divModTest(lhs: "18446744073709551623", rhs: "1717986920", div: "10737418230", mod: "23") + self.divModTest(lhs: "18446744073709551623", rhs: "-1717986920", div: "-10737418230", mod: "23") + self.divModTest(lhs: "18446744073709551623", rhs: "858993461", div: "21474836435", mod: "88") + self.divModTest(lhs: "18446744073709551623", rhs: "-858993461", div: "-21474836435", mod: "88") + 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: "8589934592", div: "-2147483648", mod: "-7") + self.divModTest(lhs: "-18446744073709551623", rhs: "-8589934592", div: "2147483648", mod: "-7") + self.divModTest(lhs: "-18446744073709551623", rhs: "7730941133", div: "-2386092942", mod: "-1240768337") + self.divModTest(lhs: "-18446744073709551623", rhs: "-7730941133", div: "2386092942", mod: "-1240768337") + self.divModTest(lhs: "-18446744073709551623", rhs: "6871947674", div: "-2684354559", mod: "-5798205857") + self.divModTest(lhs: "-18446744073709551623", rhs: "-6871947674", div: "2684354559", mod: "-5798205857") + self.divModTest(lhs: "-18446744073709551623", rhs: "6012954215", div: "-3067833782", mod: "-3313260493") + self.divModTest(lhs: "-18446744073709551623", rhs: "-6012954215", div: "3067833782", mod: "-3313260493") + self.divModTest(lhs: "-18446744073709551623", rhs: "5153960756", div: "-3579139412", mod: "-4008636151") + self.divModTest(lhs: "-18446744073709551623", rhs: "-5153960756", div: "3579139412", mod: "-4008636151") + self.divModTest(lhs: "-18446744073709551623", rhs: "4294967297", div: "-4294967295", mod: "-8") + self.divModTest(lhs: "-18446744073709551623", rhs: "-4294967297", div: "4294967295", mod: "-8") + self.divModTest(lhs: "-18446744073709551623", rhs: "3435973838", div: "-5368709118", mod: "-429496739") + self.divModTest(lhs: "-18446744073709551623", rhs: "-3435973838", div: "5368709118", mod: "-429496739") + self.divModTest(lhs: "-18446744073709551623", rhs: "2576980379", div: "-7158278822", mod: "-2004318085") + self.divModTest(lhs: "-18446744073709551623", rhs: "-2576980379", div: "7158278822", mod: "-2004318085") + self.divModTest(lhs: "-18446744073709551623", rhs: "1717986920", div: "-10737418230", mod: "-23") + self.divModTest(lhs: "-18446744073709551623", rhs: "-1717986920", div: "10737418230", mod: "-23") + self.divModTest(lhs: "-18446744073709551623", rhs: "858993461", div: "-21474836435", mod: "-88") + self.divModTest(lhs: "-18446744073709551623", rhs: "-858993461", div: "21474836435", mod: "-88") + 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: "8589934592", div: "39614081257132168811804360704", mod: "2") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-8589934592", div: "-39614081257132168811804360704", mod: "2") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "7730941133", div: "44015645840119277440694207385", mod: "206205565") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-7730941133", div: "-44015645840119277440694207385", mod: "206205565") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "6871947674", div: "49517601568532907253406105598", mod: "6160593718") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-6871947674", div: "-49517601568532907253406105598", mod: "6160593718") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "6012954215", div: "56591544647398992974454540387", mod: "1835691565") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-6012954215", div: "-56591544647398992974454540387", mod: "1835691565") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "5153960756", div: "66023468751638756869203801121", mod: "4072265294") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-5153960756", div: "-66023468751638756869203801121", mod: "4072265294") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "4294967297", div: "79228162495817593554194137080", mod: "10") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-4294967297", div: "-79228162495817593554194137080", mod: "10") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "3435973838", div: "99035203108242776903385087982", mod: "2254857854") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-3435973838", div: "-99035203108242776903385087982", mod: "2254857854") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "2576980379", div: "132046937452036558013894686292", mod: "890808102") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-2576980379", div: "-132046937452036558013894686292", mod: "890808102") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986920", div: "198070406101193403493724978970", mod: "370") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", div: "-198070406101193403493724978970", mod: "370") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "858993461", div: "396140811741218206540575535240", mod: "7130") + self.divModTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993461", div: "-396140811741218206540575535240", mod: "7130") + 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: "8589934592", div: "-39614081257132168811804360704", mod: "-2") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-8589934592", div: "39614081257132168811804360704", mod: "-2") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "7730941133", div: "-44015645840119277440694207385", mod: "-206205565") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-7730941133", div: "44015645840119277440694207385", mod: "-206205565") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "6871947674", div: "-49517601568532907253406105598", mod: "-6160593718") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6871947674", div: "49517601568532907253406105598", mod: "-6160593718") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "6012954215", div: "-56591544647398992974454540387", mod: "-1835691565") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6012954215", div: "56591544647398992974454540387", mod: "-1835691565") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "5153960756", div: "-66023468751638756869203801121", mod: "-4072265294") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-5153960756", div: "66023468751638756869203801121", mod: "-4072265294") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "4294967297", div: "-79228162495817593554194137080", mod: "-10") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-4294967297", div: "79228162495817593554194137080", mod: "-10") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "3435973838", div: "-99035203108242776903385087982", mod: "-2254857854") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-3435973838", div: "99035203108242776903385087982", mod: "-2254857854") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "2576980379", div: "-132046937452036558013894686292", mod: "-890808102") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2576980379", div: "132046937452036558013894686292", mod: "-890808102") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986920", div: "-198070406101193403493724978970", mod: "-370") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", div: "198070406101193403493724978970", mod: "-370") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993461", div: "-396140811741218206540575535240", mod: "-7130") + self.divModTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993461", div: "396140811741218206540575535240", mod: "-7130") + 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: "8589934592", div: "730750818665451459418755066415198860187109687296", mod: "11") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", div: "-730750818665451459418755066415198860187109687296", mod: "11") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", div: "811945354051718759421324435866089801162663321420", mod: "5935374383") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", div: "-811945354051718759421324435866089801162663321420", mod: "5935374383") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", div: "913438523278645204445142048177821169434042040321", mod: "103179889") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", div: "-913438523278645204445142048177821169434042040321", mod: "103179889") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", div: "1043929740846476870530777583606658831623953267603", mod: "5731546598") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", div: "-1043929740846476870530777583606658831623953267603", mod: "5731546598") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", div: "1217918030920040006326747505908866125576728216632", mod: "3018849451") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", div: "-1217918030920040006326747505908866125576728216632", mod: "3018849451") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", div: "1461501636990620551995799831715266753911263854590", mod: "13") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", div: "-1461501636990620551995799831715266753911263854590", mod: "13") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", div: "1826877046025599210792957253761014848472261591009", mod: "3033320701") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", div: "-1826877046025599210792957253761014848472261591009", mod: "3033320701") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", div: "2435836060894851216311122855691395283099369339591", mod: "2018458254") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", div: "-2435836060894851216311122855691395283099369339591", mod: "2018458254") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", div: "3653754089924433631053517193585603156792500547910", mod: "6043") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", div: "-3653754089924433631053517193585603156792500547910", mod: "6043") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", div: "7307508171341808114832725552697978132432168881670", mod: "583373") + self.divModTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", div: "-7307508171341808114832725552697978132432168881670", mod: "583373") + 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: "8589934592", div: "-730750818665451459418755066415198860187109687296", mod: "-11") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", div: "730750818665451459418755066415198860187109687296", mod: "-11") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", div: "-811945354051718759421324435866089801162663321420", mod: "-5935374383") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", div: "811945354051718759421324435866089801162663321420", mod: "-5935374383") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", div: "-913438523278645204445142048177821169434042040321", mod: "-103179889") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", div: "913438523278645204445142048177821169434042040321", mod: "-103179889") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", div: "-1043929740846476870530777583606658831623953267603", mod: "-5731546598") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", div: "1043929740846476870530777583606658831623953267603", mod: "-5731546598") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", div: "-1217918030920040006326747505908866125576728216632", mod: "-3018849451") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", div: "1217918030920040006326747505908866125576728216632", mod: "-3018849451") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", div: "-1461501636990620551995799831715266753911263854590", mod: "-13") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", div: "1461501636990620551995799831715266753911263854590", mod: "-13") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", div: "-1826877046025599210792957253761014848472261591009", mod: "-3033320701") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", div: "1826877046025599210792957253761014848472261591009", mod: "-3033320701") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", div: "-2435836060894851216311122855691395283099369339591", mod: "-2018458254") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", div: "2435836060894851216311122855691395283099369339591", mod: "-2018458254") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", div: "-3653754089924433631053517193585603156792500547910", mod: "-6043") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", div: "3653754089924433631053517193585603156792500547910", mod: "-6043") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", div: "-7307508171341808114832725552697978132432168881670", mod: "-583373") + self.divModTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", div: "7307508171341808114832725552697978132432168881670", mod: "-583373") + 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: "8589934592", div: "2147483648", mod: "13") + self.divModTest(lhs: "18446744073709551629", rhs: "-8589934592", div: "-2147483648", mod: "13") + self.divModTest(lhs: "18446744073709551629", rhs: "7730941133", div: "2386092942", mod: "1240768343") + self.divModTest(lhs: "18446744073709551629", rhs: "-7730941133", div: "-2386092942", mod: "1240768343") + self.divModTest(lhs: "18446744073709551629", rhs: "6871947674", div: "2684354559", mod: "5798205863") + self.divModTest(lhs: "18446744073709551629", rhs: "-6871947674", div: "-2684354559", mod: "5798205863") + self.divModTest(lhs: "18446744073709551629", rhs: "6012954215", div: "3067833782", mod: "3313260499") + self.divModTest(lhs: "18446744073709551629", rhs: "-6012954215", div: "-3067833782", mod: "3313260499") + self.divModTest(lhs: "18446744073709551629", rhs: "5153960756", div: "3579139412", mod: "4008636157") + self.divModTest(lhs: "18446744073709551629", rhs: "-5153960756", div: "-3579139412", mod: "4008636157") + self.divModTest(lhs: "18446744073709551629", rhs: "4294967297", div: "4294967295", mod: "14") + self.divModTest(lhs: "18446744073709551629", rhs: "-4294967297", div: "-4294967295", mod: "14") + self.divModTest(lhs: "18446744073709551629", rhs: "3435973838", div: "5368709118", mod: "429496745") + self.divModTest(lhs: "18446744073709551629", rhs: "-3435973838", div: "-5368709118", mod: "429496745") + self.divModTest(lhs: "18446744073709551629", rhs: "2576980379", div: "7158278822", mod: "2004318091") + self.divModTest(lhs: "18446744073709551629", rhs: "-2576980379", div: "-7158278822", mod: "2004318091") + self.divModTest(lhs: "18446744073709551629", rhs: "1717986920", div: "10737418230", mod: "29") + self.divModTest(lhs: "18446744073709551629", rhs: "-1717986920", div: "-10737418230", mod: "29") + self.divModTest(lhs: "18446744073709551629", rhs: "858993461", div: "21474836435", mod: "94") + self.divModTest(lhs: "18446744073709551629", rhs: "-858993461", div: "-21474836435", mod: "94") + 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: "8589934592", div: "-2147483648", mod: "-13") + self.divModTest(lhs: "-18446744073709551629", rhs: "-8589934592", div: "2147483648", mod: "-13") + self.divModTest(lhs: "-18446744073709551629", rhs: "7730941133", div: "-2386092942", mod: "-1240768343") + self.divModTest(lhs: "-18446744073709551629", rhs: "-7730941133", div: "2386092942", mod: "-1240768343") + self.divModTest(lhs: "-18446744073709551629", rhs: "6871947674", div: "-2684354559", mod: "-5798205863") + self.divModTest(lhs: "-18446744073709551629", rhs: "-6871947674", div: "2684354559", mod: "-5798205863") + self.divModTest(lhs: "-18446744073709551629", rhs: "6012954215", div: "-3067833782", mod: "-3313260499") + self.divModTest(lhs: "-18446744073709551629", rhs: "-6012954215", div: "3067833782", mod: "-3313260499") + self.divModTest(lhs: "-18446744073709551629", rhs: "5153960756", div: "-3579139412", mod: "-4008636157") + self.divModTest(lhs: "-18446744073709551629", rhs: "-5153960756", div: "3579139412", mod: "-4008636157") + self.divModTest(lhs: "-18446744073709551629", rhs: "4294967297", div: "-4294967295", mod: "-14") + self.divModTest(lhs: "-18446744073709551629", rhs: "-4294967297", div: "4294967295", mod: "-14") + self.divModTest(lhs: "-18446744073709551629", rhs: "3435973838", div: "-5368709118", mod: "-429496745") + self.divModTest(lhs: "-18446744073709551629", rhs: "-3435973838", div: "5368709118", mod: "-429496745") + self.divModTest(lhs: "-18446744073709551629", rhs: "2576980379", div: "-7158278822", mod: "-2004318091") + self.divModTest(lhs: "-18446744073709551629", rhs: "-2576980379", div: "7158278822", mod: "-2004318091") + self.divModTest(lhs: "-18446744073709551629", rhs: "1717986920", div: "-10737418230", mod: "-29") + self.divModTest(lhs: "-18446744073709551629", rhs: "-1717986920", div: "10737418230", mod: "-29") + self.divModTest(lhs: "-18446744073709551629", rhs: "858993461", div: "-21474836435", mod: "-94") + self.divModTest(lhs: "-18446744073709551629", rhs: "-858993461", div: "21474836435", mod: "-94") + 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: "8589934592", div: "39614081257132168824689262592", mod: "2") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-8589934592", div: "-39614081257132168824689262592", mod: "2") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "7730941133", div: "44015645840119277455010765037", mod: "7650815545") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-7730941133", div: "-44015645840119277455010765037", mod: "7650815545") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "6871947674", div: "49517601568532907269512232957", mod: "6590090448") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-6871947674", div: "-49517601568532907269512232957", mod: "6590090448") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "6012954215", div: "56591544647398992992861543082", mod: "3676391836") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-6012954215", div: "-56591544647398992992861543082", mod: "3676391836") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "5153960756", div: "66023468751638756890678637598", mod: "2354278378") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-5153960756", div: "-66023468751638756890678637598", mod: "2354278378") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "4294967297", div: "79228162495817593579963940850", mod: "16") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-4294967297", div: "-79228162495817593579963940850", mod: "16") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "3435973838", div: "99035203108242776935597342691", mod: "1395864408") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-3435973838", div: "-99035203108242776935597342691", mod: "1395864408") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "2576980379", div: "132046937452036558056844359229", mod: "31814675") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-2576980379", div: "-132046937452036558056844359229", mod: "31814675") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986920", div: "198070406101193403558149488350", mod: "466") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", div: "-198070406101193403558149488350", mod: "466") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "858993461", div: "396140811741218206669424553850", mod: "7616") + self.divModTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993461", div: "-396140811741218206669424553850", mod: "7616") + 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: "8589934592", div: "-39614081257132168824689262592", mod: "-2") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-8589934592", div: "39614081257132168824689262592", mod: "-2") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "7730941133", div: "-44015645840119277455010765037", mod: "-7650815545") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-7730941133", div: "44015645840119277455010765037", mod: "-7650815545") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "6871947674", div: "-49517601568532907269512232957", mod: "-6590090448") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6871947674", div: "49517601568532907269512232957", mod: "-6590090448") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "6012954215", div: "-56591544647398992992861543082", mod: "-3676391836") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6012954215", div: "56591544647398992992861543082", mod: "-3676391836") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "5153960756", div: "-66023468751638756890678637598", mod: "-2354278378") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-5153960756", div: "66023468751638756890678637598", mod: "-2354278378") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "4294967297", div: "-79228162495817593579963940850", mod: "-16") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-4294967297", div: "79228162495817593579963940850", mod: "-16") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "3435973838", div: "-99035203108242776935597342691", mod: "-1395864408") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-3435973838", div: "99035203108242776935597342691", mod: "-1395864408") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "2576980379", div: "-132046937452036558056844359229", mod: "-31814675") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2576980379", div: "132046937452036558056844359229", mod: "-31814675") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986920", div: "-198070406101193403558149488350", mod: "-466") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", div: "198070406101193403558149488350", mod: "-466") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993461", div: "-396140811741218206669424553850", mod: "-7616") + self.divModTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993461", div: "396140811741218206669424553850", mod: "-7616") + 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: "8589934592", div: "730750818665451459656439553957991872954856636416", mod: "17") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", div: "-730750818665451459656439553957991872954856636416", mod: "17") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", div: "811945354051718759685418310906805465692296104507", mod: "1732315858") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", div: "-811945354051718759685418310906805465692296104507", mod: "1732315858") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", div: "913438523278645204742247657589018612825629655041", mod: "6142977655") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", div: "-913438523278645204742247657589018612825629655041", mod: "6142977655") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", div: "1043929740846476870870326851491052789323424488365", mod: "2020093814") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", div: "-1043929740846476870870326851491052789323424488365", mod: "2020093814") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", div: "1217918030920040006722888318418698666620152331549", mod: "5118611245") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", div: "-1217918030920040006722888318418698666620152331549", mod: "5118611245") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", div: "1461501636990620552471168806690172315030270246910", mod: "19") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", div: "-1461501636990620552471168806690172315030270246910", mod: "19") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", div: "1826877046025599211387168472410471509634874081235", mod: "2818572359") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", div: "-1826877046025599211387168472410471509634874081235", mod: "2818572359") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", div: "2435836060894851217103404480403614630839140073852", mod: "1350352381") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", div: "-2435836060894851217103404480403614630839140073852", mod: "1350352381") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", div: "3653754089924433632241939630192763577239454346690", mod: "7489") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", div: "-3653754089924433632241939630192763577239454346690", mod: "7489") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", div: "7307508171341808117209570423145287370644829944230", mod: "622259") + self.divModTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", div: "-7307508171341808117209570423145287370644829944230", mod: "622259") + 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: "8589934592", div: "-730750818665451459656439553957991872954856636416", mod: "-17") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", div: "730750818665451459656439553957991872954856636416", mod: "-17") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", div: "-811945354051718759685418310906805465692296104507", mod: "-1732315858") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", div: "811945354051718759685418310906805465692296104507", mod: "-1732315858") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", div: "-913438523278645204742247657589018612825629655041", mod: "-6142977655") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", div: "913438523278645204742247657589018612825629655041", mod: "-6142977655") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", div: "-1043929740846476870870326851491052789323424488365", mod: "-2020093814") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", div: "1043929740846476870870326851491052789323424488365", mod: "-2020093814") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", div: "-1217918030920040006722888318418698666620152331549", mod: "-5118611245") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", div: "1217918030920040006722888318418698666620152331549", mod: "-5118611245") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", div: "-1461501636990620552471168806690172315030270246910", mod: "-19") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", div: "1461501636990620552471168806690172315030270246910", mod: "-19") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", div: "-1826877046025599211387168472410471509634874081235", mod: "-2818572359") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", div: "1826877046025599211387168472410471509634874081235", mod: "-2818572359") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", div: "-2435836060894851217103404480403614630839140073852", mod: "-1350352381") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", div: "2435836060894851217103404480403614630839140073852", mod: "-1350352381") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", div: "-3653754089924433632241939630192763577239454346690", mod: "-7489") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", div: "3653754089924433632241939630192763577239454346690", mod: "-7489") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", div: "-7307508171341808117209570423145287370644829944230", mod: "-622259") + self.divModTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", div: "7307508171341808117209570423145287370644829944230", mod: "-622259") + 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: "8589934592", div: "2147483648", mod: "19") + self.divModTest(lhs: "18446744073709551635", rhs: "-8589934592", div: "-2147483648", mod: "19") + self.divModTest(lhs: "18446744073709551635", rhs: "7730941133", div: "2386092942", mod: "1240768349") + self.divModTest(lhs: "18446744073709551635", rhs: "-7730941133", div: "-2386092942", mod: "1240768349") + self.divModTest(lhs: "18446744073709551635", rhs: "6871947674", div: "2684354559", mod: "5798205869") + self.divModTest(lhs: "18446744073709551635", rhs: "-6871947674", div: "-2684354559", mod: "5798205869") + self.divModTest(lhs: "18446744073709551635", rhs: "6012954215", div: "3067833782", mod: "3313260505") + self.divModTest(lhs: "18446744073709551635", rhs: "-6012954215", div: "-3067833782", mod: "3313260505") + self.divModTest(lhs: "18446744073709551635", rhs: "5153960756", div: "3579139412", mod: "4008636163") + self.divModTest(lhs: "18446744073709551635", rhs: "-5153960756", div: "-3579139412", mod: "4008636163") + self.divModTest(lhs: "18446744073709551635", rhs: "4294967297", div: "4294967295", mod: "20") + self.divModTest(lhs: "18446744073709551635", rhs: "-4294967297", div: "-4294967295", mod: "20") + self.divModTest(lhs: "18446744073709551635", rhs: "3435973838", div: "5368709118", mod: "429496751") + self.divModTest(lhs: "18446744073709551635", rhs: "-3435973838", div: "-5368709118", mod: "429496751") + self.divModTest(lhs: "18446744073709551635", rhs: "2576980379", div: "7158278822", mod: "2004318097") + self.divModTest(lhs: "18446744073709551635", rhs: "-2576980379", div: "-7158278822", mod: "2004318097") + self.divModTest(lhs: "18446744073709551635", rhs: "1717986920", div: "10737418230", mod: "35") + self.divModTest(lhs: "18446744073709551635", rhs: "-1717986920", div: "-10737418230", mod: "35") + self.divModTest(lhs: "18446744073709551635", rhs: "858993461", div: "21474836435", mod: "100") + self.divModTest(lhs: "18446744073709551635", rhs: "-858993461", div: "-21474836435", mod: "100") + 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: "8589934592", div: "-2147483648", mod: "-19") + self.divModTest(lhs: "-18446744073709551635", rhs: "-8589934592", div: "2147483648", mod: "-19") + self.divModTest(lhs: "-18446744073709551635", rhs: "7730941133", div: "-2386092942", mod: "-1240768349") + self.divModTest(lhs: "-18446744073709551635", rhs: "-7730941133", div: "2386092942", mod: "-1240768349") + self.divModTest(lhs: "-18446744073709551635", rhs: "6871947674", div: "-2684354559", mod: "-5798205869") + self.divModTest(lhs: "-18446744073709551635", rhs: "-6871947674", div: "2684354559", mod: "-5798205869") + self.divModTest(lhs: "-18446744073709551635", rhs: "6012954215", div: "-3067833782", mod: "-3313260505") + self.divModTest(lhs: "-18446744073709551635", rhs: "-6012954215", div: "3067833782", mod: "-3313260505") + self.divModTest(lhs: "-18446744073709551635", rhs: "5153960756", div: "-3579139412", mod: "-4008636163") + self.divModTest(lhs: "-18446744073709551635", rhs: "-5153960756", div: "3579139412", mod: "-4008636163") + self.divModTest(lhs: "-18446744073709551635", rhs: "4294967297", div: "-4294967295", mod: "-20") + self.divModTest(lhs: "-18446744073709551635", rhs: "-4294967297", div: "4294967295", mod: "-20") + self.divModTest(lhs: "-18446744073709551635", rhs: "3435973838", div: "-5368709118", mod: "-429496751") + self.divModTest(lhs: "-18446744073709551635", rhs: "-3435973838", div: "5368709118", mod: "-429496751") + self.divModTest(lhs: "-18446744073709551635", rhs: "2576980379", div: "-7158278822", mod: "-2004318097") + self.divModTest(lhs: "-18446744073709551635", rhs: "-2576980379", div: "7158278822", mod: "-2004318097") + self.divModTest(lhs: "-18446744073709551635", rhs: "1717986920", div: "-10737418230", mod: "-35") + self.divModTest(lhs: "-18446744073709551635", rhs: "-1717986920", div: "10737418230", mod: "-35") + self.divModTest(lhs: "-18446744073709551635", rhs: "858993461", div: "-21474836435", mod: "-100") + self.divModTest(lhs: "-18446744073709551635", rhs: "-858993461", div: "21474836435", mod: "-100") + } + + func test_divMod_big_big() { + 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_int() { + 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: "8589934592", exponent: 0, expecting: "1") + self.powerTest(base: "8589934592", exponent: 1, expecting: "8589934592") + self.powerTest(base: "8589934592", exponent: 2, expecting: "73786976294838206464") + self.powerTest(base: "8589934592", exponent: 3, expecting: "633825300114114700748351602688") + self.powerTest(base: "8589934592", exponent: 5, expecting: "46768052394588893382517914646921056628989841375232") + self.powerTest(base: "8589934592", exponent: 10, expecting: "2187250724783011924372502227117621365353169430893212436425770606409952999199375923223513177023053824") + self.powerTest(base: "-8589934592", exponent: 0, expecting: "1") + self.powerTest(base: "-8589934592", exponent: 1, expecting: "-8589934592") + self.powerTest(base: "-8589934592", exponent: 2, expecting: "73786976294838206464") + self.powerTest(base: "-8589934592", exponent: 3, expecting: "-633825300114114700748351602688") + self.powerTest(base: "-8589934592", exponent: 5, expecting: "-46768052394588893382517914646921056628989841375232") + self.powerTest(base: "-8589934592", exponent: 10, expecting: "2187250724783011924372502227117621365353169430893212436425770606409952999199375923223513177023053824") + self.powerTest(base: "7730941133", exponent: 0, expecting: "1") + self.powerTest(base: "7730941133", exponent: 1, expecting: "7730941133") + self.powerTest(base: "7730941133", exponent: 2, expecting: "59767450801911323689") + self.powerTest(base: "7730941133", exponent: 3, expecting: "462058643819050087325767399637") + self.powerTest(base: "7730941133", exponent: 5, expecting: "27616067262052943828617070491431593250630128100893") + self.powerTest(base: "7730941133", exponent: 10, expecting: "762647171022232377308396441314529181494758918520925093316858802424019362667284536968035018787397449") + self.powerTest(base: "-7730941133", exponent: 0, expecting: "1") + self.powerTest(base: "-7730941133", exponent: 1, expecting: "-7730941133") + self.powerTest(base: "-7730941133", exponent: 2, expecting: "59767450801911323689") + self.powerTest(base: "-7730941133", exponent: 3, expecting: "-462058643819050087325767399637") + self.powerTest(base: "-7730941133", exponent: 5, expecting: "-27616067262052943828617070491431593250630128100893") + self.powerTest(base: "-7730941133", exponent: 10, expecting: "762647171022232377308396441314529181494758918520925093316858802424019362667284536968035018787397449") + self.powerTest(base: "6871947674", exponent: 0, expecting: "1") + self.powerTest(base: "6871947674", exponent: 1, expecting: "6871947674") + self.powerTest(base: "6871947674", exponent: 2, expecting: "47223664834194010276") + self.powerTest(base: "6871947674", exponent: 3, expecting: "324518553715095124580890298024") + self.powerTest(base: "6871947674", exponent: 5, expecting: "15324955413119037623808824585693941399061358494624") + self.powerTest(base: "6871947674", exponent: 10, expecting: "234854258414086493123693577979277750451564448352357293445827598490736198662283589942814523436901376") + self.powerTest(base: "-6871947674", exponent: 0, expecting: "1") + self.powerTest(base: "-6871947674", exponent: 1, expecting: "-6871947674") + self.powerTest(base: "-6871947674", exponent: 2, expecting: "47223664834194010276") + self.powerTest(base: "-6871947674", exponent: 3, expecting: "-324518553715095124580890298024") + self.powerTest(base: "-6871947674", exponent: 5, expecting: "-15324955413119037623808824585693941399061358494624") + self.powerTest(base: "-6871947674", exponent: 10, expecting: "234854258414086493123693577979277750451564448352357293445827598490736198662283589942814523436901376") + self.powerTest(base: "6012954215", exponent: 0, expecting: "1") + self.powerTest(base: "6012954215", exponent: 1, expecting: "6012954215") + self.powerTest(base: "6012954215", exponent: 2, expecting: "36155618391686266225") + self.powerTest(base: "6012954215", exponent: 3, expecting: "217402078004221455455225888375") + self.powerTest(base: "6012954215", exponent: 5, expecting: "7860306569880241533872864999089726631562382634375") + self.powerTest(base: "6012954215", exponent: 10, expecting: "61784419372502488383789858684345168664531540364609379642525652835344235040797021308696564931640625") + self.powerTest(base: "-6012954215", exponent: 0, expecting: "1") + self.powerTest(base: "-6012954215", exponent: 1, expecting: "-6012954215") + self.powerTest(base: "-6012954215", exponent: 2, expecting: "36155618391686266225") + self.powerTest(base: "-6012954215", exponent: 3, expecting: "-217402078004221455455225888375") + self.powerTest(base: "-6012954215", exponent: 5, expecting: "-7860306569880241533872864999089726631562382634375") + self.powerTest(base: "-6012954215", exponent: 10, expecting: "61784419372502488383789858684345168664531540364609379642525652835344235040797021308696564931640625") + self.powerTest(base: "5153960756", exponent: 0, expecting: "1") + self.powerTest(base: "5153960756", exponent: 1, expecting: "5153960756") + self.powerTest(base: "5153960756", exponent: 2, expecting: "26563311474388091536") + self.powerTest(base: "5153960756", exponent: 3, expecting: "136906264888400722890279761216") + self.powerTest(base: "5153960756", exponent: 5, expecting: "3636683757025670414489825129308952024384030667776") + self.powerTest(base: "5153960756", exponent: 10, expecting: "13225468748614345407821867949236660347493201841428368924817902046665661366530413111040480484786176") + self.powerTest(base: "-5153960756", exponent: 0, expecting: "1") + self.powerTest(base: "-5153960756", exponent: 1, expecting: "-5153960756") + self.powerTest(base: "-5153960756", exponent: 2, expecting: "26563311474388091536") + self.powerTest(base: "-5153960756", exponent: 3, expecting: "-136906264888400722890279761216") + self.powerTest(base: "-5153960756", exponent: 5, expecting: "-3636683757025670414489825129308952024384030667776") + self.powerTest(base: "-5153960756", exponent: 10, expecting: "13225468748614345407821867949236660347493201841428368924817902046665661366530413111040480484786176") + self.powerTest(base: "4294967297", exponent: 0, expecting: "1") + self.powerTest(base: "4294967297", exponent: 1, expecting: "4294967297") + self.powerTest(base: "4294967297", exponent: 2, expecting: "18446744082299486209") + self.powerTest(base: "4294967297", exponent: 3, expecting: "79228162569604569827557507073") + self.powerTest(base: "4294967297", exponent: 5, expecting: "1461501639032314753600658775360266873508783456257") + self.powerTest(base: "4294967297", exponent: 10, expecting: "2135987040894142451703532146637796991507875388911713314844386384340985189248543954082818632450049") + self.powerTest(base: "-4294967297", exponent: 0, expecting: "1") + self.powerTest(base: "-4294967297", exponent: 1, expecting: "-4294967297") + self.powerTest(base: "-4294967297", exponent: 2, expecting: "18446744082299486209") + self.powerTest(base: "-4294967297", exponent: 3, expecting: "-79228162569604569827557507073") + self.powerTest(base: "-4294967297", exponent: 5, expecting: "-1461501639032314753600658775360266873508783456257") + self.powerTest(base: "-4294967297", exponent: 10, expecting: "2135987040894142451703532146637796991507875388911713314844386384340985189248543954082818632450049") + self.powerTest(base: "3435973838", exponent: 0, expecting: "1") + self.powerTest(base: "3435973838", exponent: 1, expecting: "3435973838") + self.powerTest(base: "3435973838", exponent: 2, expecting: "11805916215420450244") + self.powerTest(base: "3435973838", exponent: 3, expecting: "40564819249804639208564716472") + self.powerTest(base: "3435973838", exponent: 5, expecting: "478904857356868213766015210581235395410443219168") + self.powerTest(base: "3435973838", exponent: 10, expecting: "229349862400002290890272813763009176093421168991302351564264995894037368964831738880990882612224") + self.powerTest(base: "-3435973838", exponent: 0, expecting: "1") + self.powerTest(base: "-3435973838", exponent: 1, expecting: "-3435973838") + self.powerTest(base: "-3435973838", exponent: 2, expecting: "11805916215420450244") + self.powerTest(base: "-3435973838", exponent: 3, expecting: "-40564819249804639208564716472") + self.powerTest(base: "-3435973838", exponent: 5, expecting: "-478904857356868213766015210581235395410443219168") + self.powerTest(base: "-3435973838", exponent: 10, expecting: "229349862400002290890272813763009176093421168991302351564264995894037368964831738880990882612224") + self.powerTest(base: "2576980379", exponent: 0, expecting: "1") + self.powerTest(base: "2576980379", exponent: 1, expecting: "2576980379") + self.powerTest(base: "2576980379", exponent: 2, expecting: "6640827873750983641") + self.powerTest(base: "2576980379", exponent: 3, expecting: "17113283130972573974806979939") + self.powerTest(base: "2576980379", exponent: 5, expecting: "113646367627555174525614255648605427813804177899") + self.powerTest(base: "2576980379", exponent: 10, expecting: "12915496874937420747599514269620638572191664494396269671974723206068642753406955711867240054201") + self.powerTest(base: "-2576980379", exponent: 0, expecting: "1") + self.powerTest(base: "-2576980379", exponent: 1, expecting: "-2576980379") + self.powerTest(base: "-2576980379", exponent: 2, expecting: "6640827873750983641") + self.powerTest(base: "-2576980379", exponent: 3, expecting: "-17113283130972573974806979939") + self.powerTest(base: "-2576980379", exponent: 5, expecting: "-113646367627555174525614255648605427813804177899") + self.powerTest(base: "-2576980379", exponent: 10, expecting: "12915496874937420747599514269620638572191664494396269671974723206068642753406955711867240054201") + 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: "-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: "858993461", exponent: 0, expecting: "1") + self.powerTest(base: "858993461", exponent: 1, expecting: "858993461") + self.powerTest(base: "858993461", exponent: 2, expecting: "737869766040758521") + self.powerTest(base: "858993461", exponent: 3, expecting: "633825304098611429019031181") + self.powerTest(base: "858993461", exponent: 5, expecting: "467680528845955038022632787071685837790443301") + self.powerTest(base: "858993461", exponent: 10, expecting: "218725077061632182409009881971469297430973799046270723068995043073937522891256486095776601") + self.powerTest(base: "-858993461", exponent: 0, expecting: "1") + self.powerTest(base: "-858993461", exponent: 1, expecting: "-858993461") + self.powerTest(base: "-858993461", exponent: 2, expecting: "737869766040758521") + self.powerTest(base: "-858993461", exponent: 3, expecting: "-633825304098611429019031181") + self.powerTest(base: "-858993461", exponent: 5, expecting: "-467680528845955038022632787071685837790443301") + self.powerTest(base: "-858993461", exponent: 10, expecting: "218725077061632182409009881971469297430973799046270723068995043073937522891256486095776601") + } + + func test_power_big() { + 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_int_int() { + 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: "8589934592", expecting: "0") + self.andTest(lhs: "0", rhs: "-8589934592", expecting: "0") + self.andTest(lhs: "0", rhs: "7730941133", expecting: "0") + self.andTest(lhs: "0", rhs: "-7730941133", expecting: "0") + self.andTest(lhs: "0", rhs: "6871947674", expecting: "0") + self.andTest(lhs: "0", rhs: "-6871947674", expecting: "0") + self.andTest(lhs: "0", rhs: "6012954215", expecting: "0") + self.andTest(lhs: "0", rhs: "-6012954215", expecting: "0") + self.andTest(lhs: "0", rhs: "5153960756", expecting: "0") + self.andTest(lhs: "0", rhs: "-5153960756", expecting: "0") + self.andTest(lhs: "0", rhs: "4294967297", expecting: "0") + self.andTest(lhs: "0", rhs: "-4294967297", expecting: "0") + self.andTest(lhs: "0", rhs: "3435973838", expecting: "0") + self.andTest(lhs: "0", rhs: "-3435973838", expecting: "0") + self.andTest(lhs: "0", rhs: "2576980379", expecting: "0") + self.andTest(lhs: "0", rhs: "-2576980379", expecting: "0") + self.andTest(lhs: "0", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.andTest(lhs: "0", rhs: "858993461", expecting: "0") + self.andTest(lhs: "0", rhs: "-858993461", 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: "8589934592", expecting: "0") + self.andTest(lhs: "1", rhs: "-8589934592", expecting: "0") + self.andTest(lhs: "1", rhs: "7730941133", expecting: "1") + self.andTest(lhs: "1", rhs: "-7730941133", expecting: "1") + self.andTest(lhs: "1", rhs: "6871947674", expecting: "0") + self.andTest(lhs: "1", rhs: "-6871947674", expecting: "0") + self.andTest(lhs: "1", rhs: "6012954215", expecting: "1") + self.andTest(lhs: "1", rhs: "-6012954215", expecting: "1") + self.andTest(lhs: "1", rhs: "5153960756", expecting: "0") + self.andTest(lhs: "1", rhs: "-5153960756", expecting: "0") + self.andTest(lhs: "1", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "1", rhs: "-4294967297", expecting: "1") + self.andTest(lhs: "1", rhs: "3435973838", expecting: "0") + self.andTest(lhs: "1", rhs: "-3435973838", expecting: "0") + self.andTest(lhs: "1", rhs: "2576980379", expecting: "1") + self.andTest(lhs: "1", rhs: "-2576980379", expecting: "1") + self.andTest(lhs: "1", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "1", rhs: "-1717986920", expecting: "0") + self.andTest(lhs: "1", rhs: "858993461", expecting: "1") + self.andTest(lhs: "1", rhs: "-858993461", 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-1", rhs: "-8589934592", expecting: "-8589934592") + self.andTest(lhs: "-1", rhs: "7730941133", expecting: "7730941133") + self.andTest(lhs: "-1", rhs: "-7730941133", expecting: "-7730941133") + self.andTest(lhs: "-1", rhs: "6871947674", expecting: "6871947674") + self.andTest(lhs: "-1", rhs: "-6871947674", expecting: "-6871947674") + self.andTest(lhs: "-1", rhs: "6012954215", expecting: "6012954215") + self.andTest(lhs: "-1", rhs: "-6012954215", expecting: "-6012954215") + self.andTest(lhs: "-1", rhs: "5153960756", expecting: "5153960756") + self.andTest(lhs: "-1", rhs: "-5153960756", expecting: "-5153960756") + self.andTest(lhs: "-1", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "-1", rhs: "-4294967297", expecting: "-4294967297") + self.andTest(lhs: "-1", rhs: "3435973838", expecting: "3435973838") + self.andTest(lhs: "-1", rhs: "-3435973838", expecting: "-3435973838") + self.andTest(lhs: "-1", rhs: "2576980379", expecting: "2576980379") + self.andTest(lhs: "-1", rhs: "-2576980379", expecting: "-2576980379") + self.andTest(lhs: "-1", rhs: "1717986920", expecting: "1717986920") + self.andTest(lhs: "-1", rhs: "-1717986920", expecting: "-1717986920") + self.andTest(lhs: "-1", rhs: "858993461", expecting: "858993461") + self.andTest(lhs: "-1", rhs: "-858993461", expecting: "-858993461") + self.andTest(lhs: "8589934592", rhs: "0", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "1", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-1", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "8589934592", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "-8589934592", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "7730941133", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-7730941133", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "6871947674", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-6871947674", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "6012954215", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-6012954215", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "5153960756", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-5153960756", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "4294967297", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-4294967297", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "3435973838", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-3435973838", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "2576980379", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-2576980379", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-1717986920", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "858993461", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-858993461", expecting: "8589934592") + self.andTest(lhs: "-8589934592", rhs: "0", expecting: "0") + self.andTest(lhs: "-8589934592", rhs: "1", expecting: "0") + self.andTest(lhs: "-8589934592", rhs: "-1", expecting: "-8589934592") + self.andTest(lhs: "-8589934592", rhs: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-8589934592", rhs: "-8589934592", expecting: "-8589934592") + self.andTest(lhs: "-8589934592", rhs: "7730941133", expecting: "0") + self.andTest(lhs: "-8589934592", rhs: "-7730941133", expecting: "-8589934592") + self.andTest(lhs: "-8589934592", rhs: "6871947674", expecting: "0") + self.andTest(lhs: "-8589934592", rhs: "-6871947674", expecting: "-8589934592") + self.andTest(lhs: "-8589934592", rhs: "6012954215", expecting: "0") + self.andTest(lhs: "-8589934592", rhs: "-6012954215", expecting: "-8589934592") + self.andTest(lhs: "-8589934592", rhs: "5153960756", expecting: "0") + self.andTest(lhs: "-8589934592", rhs: "-5153960756", expecting: "-8589934592") + self.andTest(lhs: "-8589934592", rhs: "4294967297", expecting: "0") + self.andTest(lhs: "-8589934592", rhs: "-4294967297", expecting: "-8589934592") + self.andTest(lhs: "-8589934592", rhs: "3435973838", expecting: "0") + self.andTest(lhs: "-8589934592", rhs: "-3435973838", expecting: "-8589934592") + self.andTest(lhs: "-8589934592", rhs: "2576980379", expecting: "0") + self.andTest(lhs: "-8589934592", rhs: "-2576980379", expecting: "-8589934592") + self.andTest(lhs: "-8589934592", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "-8589934592", rhs: "-1717986920", expecting: "-8589934592") + self.andTest(lhs: "-8589934592", rhs: "858993461", expecting: "0") + self.andTest(lhs: "-8589934592", rhs: "-858993461", expecting: "-8589934592") + self.andTest(lhs: "7730941133", rhs: "0", expecting: "0") + self.andTest(lhs: "7730941133", rhs: "1", expecting: "1") + self.andTest(lhs: "7730941133", rhs: "-1", expecting: "7730941133") + self.andTest(lhs: "7730941133", rhs: "8589934592", expecting: "0") + self.andTest(lhs: "7730941133", rhs: "-8589934592", expecting: "0") + self.andTest(lhs: "7730941133", rhs: "7730941133", expecting: "7730941133") + self.andTest(lhs: "7730941133", rhs: "-7730941133", expecting: "1") + self.andTest(lhs: "7730941133", rhs: "6871947674", expecting: "6585616520") + self.andTest(lhs: "7730941133", rhs: "-6871947674", expecting: "1145324612") + self.andTest(lhs: "7730941133", rhs: "6012954215", expecting: "5440291909") + self.andTest(lhs: "7730941133", rhs: "-6012954215", expecting: "2290649225") + self.andTest(lhs: "7730941133", rhs: "5153960756", expecting: "4294967300") + self.andTest(lhs: "7730941133", rhs: "-5153960756", expecting: "3435973836") + self.andTest(lhs: "7730941133", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "7730941133", rhs: "-4294967297", expecting: "3435973837") + self.andTest(lhs: "7730941133", rhs: "3435973838", expecting: "3435973836") + self.andTest(lhs: "7730941133", rhs: "-3435973838", expecting: "4294967296") + self.andTest(lhs: "7730941133", rhs: "2576980379", expecting: "2290649225") + self.andTest(lhs: "7730941133", rhs: "-2576980379", expecting: "5440291909") + self.andTest(lhs: "7730941133", rhs: "1717986920", expecting: "1145324616") + self.andTest(lhs: "7730941133", rhs: "-1717986920", expecting: "6585616520") + self.andTest(lhs: "7730941133", rhs: "858993461", expecting: "5") + self.andTest(lhs: "7730941133", rhs: "-858993461", expecting: "7730941129") + self.andTest(lhs: "-7730941133", rhs: "0", expecting: "0") + self.andTest(lhs: "-7730941133", rhs: "1", expecting: "1") + self.andTest(lhs: "-7730941133", rhs: "-1", expecting: "-7730941133") + self.andTest(lhs: "-7730941133", rhs: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-7730941133", rhs: "-8589934592", expecting: "-8589934592") + self.andTest(lhs: "-7730941133", rhs: "7730941133", expecting: "1") + self.andTest(lhs: "-7730941133", rhs: "-7730941133", expecting: "-7730941133") + self.andTest(lhs: "-7730941133", rhs: "6871947674", expecting: "286331154") + self.andTest(lhs: "-7730941133", rhs: "-6871947674", expecting: "-8017272286") + self.andTest(lhs: "-7730941133", rhs: "6012954215", expecting: "572662307") + self.andTest(lhs: "-7730941133", rhs: "-6012954215", expecting: "-8303603439") + self.andTest(lhs: "-7730941133", rhs: "5153960756", expecting: "858993456") + self.andTest(lhs: "-7730941133", rhs: "-5153960756", expecting: "-8589934592") + self.andTest(lhs: "-7730941133", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "-7730941133", rhs: "-4294967297", expecting: "-7730941133") + self.andTest(lhs: "-7730941133", rhs: "3435973838", expecting: "2") + self.andTest(lhs: "-7730941133", rhs: "-3435973838", expecting: "-7730941134") + self.andTest(lhs: "-7730941133", rhs: "2576980379", expecting: "286331155") + self.andTest(lhs: "-7730941133", rhs: "-2576980379", expecting: "-8017272287") + self.andTest(lhs: "-7730941133", rhs: "1717986920", expecting: "572662304") + self.andTest(lhs: "-7730941133", rhs: "-1717986920", expecting: "-8303603440") + self.andTest(lhs: "-7730941133", rhs: "858993461", expecting: "858993457") + self.andTest(lhs: "-7730941133", rhs: "-858993461", expecting: "-8589934589") + self.andTest(lhs: "6871947674", rhs: "0", expecting: "0") + self.andTest(lhs: "6871947674", rhs: "1", expecting: "0") + self.andTest(lhs: "6871947674", rhs: "-1", expecting: "6871947674") + self.andTest(lhs: "6871947674", rhs: "8589934592", expecting: "0") + self.andTest(lhs: "6871947674", rhs: "-8589934592", expecting: "0") + self.andTest(lhs: "6871947674", rhs: "7730941133", expecting: "6585616520") + self.andTest(lhs: "6871947674", rhs: "-7730941133", expecting: "286331154") + self.andTest(lhs: "6871947674", rhs: "6871947674", expecting: "6871947674") + self.andTest(lhs: "6871947674", rhs: "-6871947674", expecting: "2") + self.andTest(lhs: "6871947674", rhs: "6012954215", expecting: "4294967298") + self.andTest(lhs: "6871947674", rhs: "-6012954215", expecting: "2576980376") + self.andTest(lhs: "6871947674", rhs: "5153960756", expecting: "4581298448") + self.andTest(lhs: "6871947674", rhs: "-5153960756", expecting: "2290649224") + self.andTest(lhs: "6871947674", rhs: "4294967297", expecting: "4294967296") + self.andTest(lhs: "6871947674", rhs: "-4294967297", expecting: "2576980378") + self.andTest(lhs: "6871947674", rhs: "3435973838", expecting: "2290649226") + self.andTest(lhs: "6871947674", rhs: "-3435973838", expecting: "4581298450") + self.andTest(lhs: "6871947674", rhs: "2576980379", expecting: "2576980378") + self.andTest(lhs: "6871947674", rhs: "-2576980379", expecting: "4294967296") + self.andTest(lhs: "6871947674", rhs: "1717986920", expecting: "8") + self.andTest(lhs: "6871947674", rhs: "-1717986920", expecting: "6871947672") + self.andTest(lhs: "6871947674", rhs: "858993461", expecting: "286331152") + self.andTest(lhs: "6871947674", rhs: "-858993461", expecting: "6585616522") + self.andTest(lhs: "-6871947674", rhs: "0", expecting: "0") + self.andTest(lhs: "-6871947674", rhs: "1", expecting: "0") + self.andTest(lhs: "-6871947674", rhs: "-1", expecting: "-6871947674") + self.andTest(lhs: "-6871947674", rhs: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-6871947674", rhs: "-8589934592", expecting: "-8589934592") + self.andTest(lhs: "-6871947674", rhs: "7730941133", expecting: "1145324612") + self.andTest(lhs: "-6871947674", rhs: "-7730941133", expecting: "-8017272286") + self.andTest(lhs: "-6871947674", rhs: "6871947674", expecting: "2") + self.andTest(lhs: "-6871947674", rhs: "-6871947674", expecting: "-6871947674") + self.andTest(lhs: "-6871947674", rhs: "6012954215", expecting: "1717986918") + self.andTest(lhs: "-6871947674", rhs: "-6012954215", expecting: "-8589934592") + self.andTest(lhs: "-6871947674", rhs: "5153960756", expecting: "572662308") + self.andTest(lhs: "-6871947674", rhs: "-5153960756", expecting: "-7444609980") + self.andTest(lhs: "-6871947674", rhs: "4294967297", expecting: "0") + self.andTest(lhs: "-6871947674", rhs: "-4294967297", expecting: "-6871947674") + self.andTest(lhs: "-6871947674", rhs: "3435973838", expecting: "1145324614") + self.andTest(lhs: "-6871947674", rhs: "-3435973838", expecting: "-8017272286") + self.andTest(lhs: "-6871947674", rhs: "2576980379", expecting: "2") + self.andTest(lhs: "-6871947674", rhs: "-2576980379", expecting: "-6871947676") + self.andTest(lhs: "-6871947674", rhs: "1717986920", expecting: "1717986912") + self.andTest(lhs: "-6871947674", rhs: "-1717986920", expecting: "-8589934592") + self.andTest(lhs: "-6871947674", rhs: "858993461", expecting: "572662308") + self.andTest(lhs: "-6871947674", rhs: "-858993461", expecting: "-7444609982") + self.andTest(lhs: "6012954215", rhs: "0", expecting: "0") + self.andTest(lhs: "6012954215", rhs: "1", expecting: "1") + self.andTest(lhs: "6012954215", rhs: "-1", expecting: "6012954215") + self.andTest(lhs: "6012954215", rhs: "8589934592", expecting: "0") + self.andTest(lhs: "6012954215", rhs: "-8589934592", expecting: "0") + self.andTest(lhs: "6012954215", rhs: "7730941133", expecting: "5440291909") + self.andTest(lhs: "6012954215", rhs: "-7730941133", expecting: "572662307") + self.andTest(lhs: "6012954215", rhs: "6871947674", expecting: "4294967298") + self.andTest(lhs: "6012954215", rhs: "-6871947674", expecting: "1717986918") + self.andTest(lhs: "6012954215", rhs: "6012954215", expecting: "6012954215") + self.andTest(lhs: "6012954215", rhs: "-6012954215", expecting: "1") + self.andTest(lhs: "6012954215", rhs: "5153960756", expecting: "4867629604") + self.andTest(lhs: "6012954215", rhs: "-5153960756", expecting: "1145324612") + self.andTest(lhs: "6012954215", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "6012954215", rhs: "-4294967297", expecting: "1717986919") + self.andTest(lhs: "6012954215", rhs: "3435973838", expecting: "1145324614") + self.andTest(lhs: "6012954215", rhs: "-3435973838", expecting: "4867629602") + self.andTest(lhs: "6012954215", rhs: "2576980379", expecting: "3") + self.andTest(lhs: "6012954215", rhs: "-2576980379", expecting: "6012954213") + self.andTest(lhs: "6012954215", rhs: "1717986920", expecting: "1717986912") + self.andTest(lhs: "6012954215", rhs: "-1717986920", expecting: "4294967296") + self.andTest(lhs: "6012954215", rhs: "858993461", expecting: "572662309") + self.andTest(lhs: "6012954215", rhs: "-858993461", expecting: "5440291907") + self.andTest(lhs: "-6012954215", rhs: "0", expecting: "0") + self.andTest(lhs: "-6012954215", rhs: "1", expecting: "1") + self.andTest(lhs: "-6012954215", rhs: "-1", expecting: "-6012954215") + self.andTest(lhs: "-6012954215", rhs: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-6012954215", rhs: "-8589934592", expecting: "-8589934592") + self.andTest(lhs: "-6012954215", rhs: "7730941133", expecting: "2290649225") + self.andTest(lhs: "-6012954215", rhs: "-7730941133", expecting: "-8303603439") + self.andTest(lhs: "-6012954215", rhs: "6871947674", expecting: "2576980376") + self.andTest(lhs: "-6012954215", rhs: "-6871947674", expecting: "-8589934592") + self.andTest(lhs: "-6012954215", rhs: "6012954215", expecting: "1") + self.andTest(lhs: "-6012954215", rhs: "-6012954215", expecting: "-6012954215") + self.andTest(lhs: "-6012954215", rhs: "5153960756", expecting: "286331152") + self.andTest(lhs: "-6012954215", rhs: "-5153960756", expecting: "-6299285368") + self.andTest(lhs: "-6012954215", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "-6012954215", rhs: "-4294967297", expecting: "-6012954215") + self.andTest(lhs: "-6012954215", rhs: "3435973838", expecting: "2290649224") + self.andTest(lhs: "-6012954215", rhs: "-3435973838", expecting: "-8303603440") + self.andTest(lhs: "-6012954215", rhs: "2576980379", expecting: "2576980377") + self.andTest(lhs: "-6012954215", rhs: "-2576980379", expecting: "-8589934591") + self.andTest(lhs: "-6012954215", rhs: "1717986920", expecting: "8") + self.andTest(lhs: "-6012954215", rhs: "-1717986920", expecting: "-6012954216") + self.andTest(lhs: "-6012954215", rhs: "858993461", expecting: "286331153") + self.andTest(lhs: "-6012954215", rhs: "-858993461", expecting: "-6299285367") + self.andTest(lhs: "5153960756", rhs: "0", expecting: "0") + self.andTest(lhs: "5153960756", rhs: "1", expecting: "0") + self.andTest(lhs: "5153960756", rhs: "-1", expecting: "5153960756") + self.andTest(lhs: "5153960756", rhs: "8589934592", expecting: "0") + self.andTest(lhs: "5153960756", rhs: "-8589934592", expecting: "0") + self.andTest(lhs: "5153960756", rhs: "7730941133", expecting: "4294967300") + self.andTest(lhs: "5153960756", rhs: "-7730941133", expecting: "858993456") + self.andTest(lhs: "5153960756", rhs: "6871947674", expecting: "4581298448") + self.andTest(lhs: "5153960756", rhs: "-6871947674", expecting: "572662308") + self.andTest(lhs: "5153960756", rhs: "6012954215", expecting: "4867629604") + self.andTest(lhs: "5153960756", rhs: "-6012954215", expecting: "286331152") + self.andTest(lhs: "5153960756", rhs: "5153960756", expecting: "5153960756") + self.andTest(lhs: "5153960756", rhs: "-5153960756", expecting: "4") + self.andTest(lhs: "5153960756", rhs: "4294967297", expecting: "4294967296") + self.andTest(lhs: "5153960756", rhs: "-4294967297", expecting: "858993460") + self.andTest(lhs: "5153960756", rhs: "3435973838", expecting: "4") + self.andTest(lhs: "5153960756", rhs: "-3435973838", expecting: "5153960752") + self.andTest(lhs: "5153960756", rhs: "2576980379", expecting: "286331152") + self.andTest(lhs: "5153960756", rhs: "-2576980379", expecting: "4867629604") + self.andTest(lhs: "5153960756", rhs: "1717986920", expecting: "572662304") + self.andTest(lhs: "5153960756", rhs: "-1717986920", expecting: "4581298448") + self.andTest(lhs: "5153960756", rhs: "858993461", expecting: "858993460") + self.andTest(lhs: "5153960756", rhs: "-858993461", expecting: "4294967296") + self.andTest(lhs: "-5153960756", rhs: "0", expecting: "0") + self.andTest(lhs: "-5153960756", rhs: "1", expecting: "0") + self.andTest(lhs: "-5153960756", rhs: "-1", expecting: "-5153960756") + self.andTest(lhs: "-5153960756", rhs: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-5153960756", rhs: "-8589934592", expecting: "-8589934592") + self.andTest(lhs: "-5153960756", rhs: "7730941133", expecting: "3435973836") + self.andTest(lhs: "-5153960756", rhs: "-7730941133", expecting: "-8589934592") + self.andTest(lhs: "-5153960756", rhs: "6871947674", expecting: "2290649224") + self.andTest(lhs: "-5153960756", rhs: "-6871947674", expecting: "-7444609980") + self.andTest(lhs: "-5153960756", rhs: "6012954215", expecting: "1145324612") + self.andTest(lhs: "-5153960756", rhs: "-6012954215", expecting: "-6299285368") + self.andTest(lhs: "-5153960756", rhs: "5153960756", expecting: "4") + self.andTest(lhs: "-5153960756", rhs: "-5153960756", expecting: "-5153960756") + self.andTest(lhs: "-5153960756", rhs: "4294967297", expecting: "0") + self.andTest(lhs: "-5153960756", rhs: "-4294967297", expecting: "-5153960756") + self.andTest(lhs: "-5153960756", rhs: "3435973838", expecting: "3435973836") + self.andTest(lhs: "-5153960756", rhs: "-3435973838", expecting: "-8589934592") + self.andTest(lhs: "-5153960756", rhs: "2576980379", expecting: "2290649224") + self.andTest(lhs: "-5153960756", rhs: "-2576980379", expecting: "-7444609980") + self.andTest(lhs: "-5153960756", rhs: "1717986920", expecting: "1145324616") + self.andTest(lhs: "-5153960756", rhs: "-1717986920", expecting: "-6299285368") + self.andTest(lhs: "-5153960756", rhs: "858993461", expecting: "4") + self.andTest(lhs: "-5153960756", rhs: "-858993461", expecting: "-5153960760") + self.andTest(lhs: "4294967297", rhs: "0", expecting: "0") + self.andTest(lhs: "4294967297", rhs: "1", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "-1", expecting: "4294967297") + self.andTest(lhs: "4294967297", rhs: "8589934592", expecting: "0") + self.andTest(lhs: "4294967297", rhs: "-8589934592", expecting: "0") + self.andTest(lhs: "4294967297", rhs: "7730941133", expecting: "4294967297") + self.andTest(lhs: "4294967297", rhs: "-7730941133", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "6871947674", expecting: "4294967296") + self.andTest(lhs: "4294967297", rhs: "-6871947674", expecting: "0") + self.andTest(lhs: "4294967297", rhs: "6012954215", expecting: "4294967297") + self.andTest(lhs: "4294967297", rhs: "-6012954215", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "5153960756", expecting: "4294967296") + self.andTest(lhs: "4294967297", rhs: "-5153960756", expecting: "0") + self.andTest(lhs: "4294967297", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "4294967297", rhs: "-4294967297", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "3435973838", expecting: "0") + self.andTest(lhs: "4294967297", rhs: "-3435973838", expecting: "4294967296") + self.andTest(lhs: "4294967297", rhs: "2576980379", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "-2576980379", expecting: "4294967297") + self.andTest(lhs: "4294967297", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "4294967297", rhs: "-1717986920", expecting: "4294967296") + self.andTest(lhs: "4294967297", rhs: "858993461", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "-858993461", expecting: "4294967297") + self.andTest(lhs: "-4294967297", rhs: "0", expecting: "0") + self.andTest(lhs: "-4294967297", rhs: "1", expecting: "1") + self.andTest(lhs: "-4294967297", rhs: "-1", expecting: "-4294967297") + self.andTest(lhs: "-4294967297", rhs: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-4294967297", rhs: "-8589934592", expecting: "-8589934592") + self.andTest(lhs: "-4294967297", rhs: "7730941133", expecting: "3435973837") + self.andTest(lhs: "-4294967297", rhs: "-7730941133", expecting: "-7730941133") + self.andTest(lhs: "-4294967297", rhs: "6871947674", expecting: "2576980378") + self.andTest(lhs: "-4294967297", rhs: "-6871947674", expecting: "-6871947674") + self.andTest(lhs: "-4294967297", rhs: "6012954215", expecting: "1717986919") + self.andTest(lhs: "-4294967297", rhs: "-6012954215", expecting: "-6012954215") + self.andTest(lhs: "-4294967297", rhs: "5153960756", expecting: "858993460") + self.andTest(lhs: "-4294967297", rhs: "-5153960756", expecting: "-5153960756") + self.andTest(lhs: "-4294967297", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "-4294967297", rhs: "-4294967297", expecting: "-4294967297") + self.andTest(lhs: "-4294967297", rhs: "3435973838", expecting: "3435973838") + self.andTest(lhs: "-4294967297", rhs: "-3435973838", expecting: "-7730941134") + self.andTest(lhs: "-4294967297", rhs: "2576980379", expecting: "2576980379") + self.andTest(lhs: "-4294967297", rhs: "-2576980379", expecting: "-6871947675") + self.andTest(lhs: "-4294967297", rhs: "1717986920", expecting: "1717986920") + self.andTest(lhs: "-4294967297", rhs: "-1717986920", expecting: "-6012954216") + self.andTest(lhs: "-4294967297", rhs: "858993461", expecting: "858993461") + self.andTest(lhs: "-4294967297", rhs: "-858993461", expecting: "-5153960757") + self.andTest(lhs: "3435973838", rhs: "0", expecting: "0") + self.andTest(lhs: "3435973838", rhs: "1", expecting: "0") + self.andTest(lhs: "3435973838", rhs: "-1", expecting: "3435973838") + self.andTest(lhs: "3435973838", rhs: "8589934592", expecting: "0") + self.andTest(lhs: "3435973838", rhs: "-8589934592", expecting: "0") + self.andTest(lhs: "3435973838", rhs: "7730941133", expecting: "3435973836") + self.andTest(lhs: "3435973838", rhs: "-7730941133", expecting: "2") + self.andTest(lhs: "3435973838", rhs: "6871947674", expecting: "2290649226") + self.andTest(lhs: "3435973838", rhs: "-6871947674", expecting: "1145324614") + self.andTest(lhs: "3435973838", rhs: "6012954215", expecting: "1145324614") + self.andTest(lhs: "3435973838", rhs: "-6012954215", expecting: "2290649224") + self.andTest(lhs: "3435973838", rhs: "5153960756", expecting: "4") + self.andTest(lhs: "3435973838", rhs: "-5153960756", expecting: "3435973836") + self.andTest(lhs: "3435973838", rhs: "4294967297", expecting: "0") + self.andTest(lhs: "3435973838", rhs: "-4294967297", expecting: "3435973838") + self.andTest(lhs: "3435973838", rhs: "3435973838", expecting: "3435973838") + self.andTest(lhs: "3435973838", rhs: "-3435973838", expecting: "2") + self.andTest(lhs: "3435973838", rhs: "2576980379", expecting: "2290649226") + self.andTest(lhs: "3435973838", rhs: "-2576980379", expecting: "1145324612") + self.andTest(lhs: "3435973838", rhs: "1717986920", expecting: "1145324616") + self.andTest(lhs: "3435973838", rhs: "-1717986920", expecting: "2290649224") + self.andTest(lhs: "3435973838", rhs: "858993461", expecting: "4") + self.andTest(lhs: "3435973838", rhs: "-858993461", expecting: "3435973834") + self.andTest(lhs: "-3435973838", rhs: "0", expecting: "0") + self.andTest(lhs: "-3435973838", rhs: "1", expecting: "0") + self.andTest(lhs: "-3435973838", rhs: "-1", expecting: "-3435973838") + self.andTest(lhs: "-3435973838", rhs: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-3435973838", rhs: "-8589934592", expecting: "-8589934592") + self.andTest(lhs: "-3435973838", rhs: "7730941133", expecting: "4294967296") + self.andTest(lhs: "-3435973838", rhs: "-7730941133", expecting: "-7730941134") + self.andTest(lhs: "-3435973838", rhs: "6871947674", expecting: "4581298450") + self.andTest(lhs: "-3435973838", rhs: "-6871947674", expecting: "-8017272286") + self.andTest(lhs: "-3435973838", rhs: "6012954215", expecting: "4867629602") + self.andTest(lhs: "-3435973838", rhs: "-6012954215", expecting: "-8303603440") + self.andTest(lhs: "-3435973838", rhs: "5153960756", expecting: "5153960752") + self.andTest(lhs: "-3435973838", rhs: "-5153960756", expecting: "-8589934592") + self.andTest(lhs: "-3435973838", rhs: "4294967297", expecting: "4294967296") + self.andTest(lhs: "-3435973838", rhs: "-4294967297", expecting: "-7730941134") + self.andTest(lhs: "-3435973838", rhs: "3435973838", expecting: "2") + self.andTest(lhs: "-3435973838", rhs: "-3435973838", expecting: "-3435973838") + self.andTest(lhs: "-3435973838", rhs: "2576980379", expecting: "286331154") + self.andTest(lhs: "-3435973838", rhs: "-2576980379", expecting: "-3722304992") + self.andTest(lhs: "-3435973838", rhs: "1717986920", expecting: "572662304") + self.andTest(lhs: "-3435973838", rhs: "-1717986920", expecting: "-4008636144") + self.andTest(lhs: "-3435973838", rhs: "858993461", expecting: "858993456") + self.andTest(lhs: "-3435973838", rhs: "-858993461", expecting: "-4294967294") + self.andTest(lhs: "2576980379", rhs: "0", expecting: "0") + self.andTest(lhs: "2576980379", rhs: "1", expecting: "1") + self.andTest(lhs: "2576980379", rhs: "-1", expecting: "2576980379") + self.andTest(lhs: "2576980379", rhs: "8589934592", expecting: "0") + self.andTest(lhs: "2576980379", rhs: "-8589934592", expecting: "0") + self.andTest(lhs: "2576980379", rhs: "7730941133", expecting: "2290649225") + self.andTest(lhs: "2576980379", rhs: "-7730941133", expecting: "286331155") + self.andTest(lhs: "2576980379", rhs: "6871947674", expecting: "2576980378") + self.andTest(lhs: "2576980379", rhs: "-6871947674", expecting: "2") + self.andTest(lhs: "2576980379", rhs: "6012954215", expecting: "3") + self.andTest(lhs: "2576980379", rhs: "-6012954215", expecting: "2576980377") + self.andTest(lhs: "2576980379", rhs: "5153960756", expecting: "286331152") + self.andTest(lhs: "2576980379", rhs: "-5153960756", expecting: "2290649224") + self.andTest(lhs: "2576980379", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "2576980379", rhs: "-4294967297", expecting: "2576980379") + self.andTest(lhs: "2576980379", rhs: "3435973838", expecting: "2290649226") + self.andTest(lhs: "2576980379", rhs: "-3435973838", expecting: "286331154") + self.andTest(lhs: "2576980379", rhs: "2576980379", expecting: "2576980379") + self.andTest(lhs: "2576980379", rhs: "-2576980379", expecting: "1") + self.andTest(lhs: "2576980379", rhs: "1717986920", expecting: "8") + self.andTest(lhs: "2576980379", rhs: "-1717986920", expecting: "2576980376") + self.andTest(lhs: "2576980379", rhs: "858993461", expecting: "286331153") + self.andTest(lhs: "2576980379", rhs: "-858993461", expecting: "2290649227") + self.andTest(lhs: "-2576980379", rhs: "0", expecting: "0") + self.andTest(lhs: "-2576980379", rhs: "1", expecting: "1") + self.andTest(lhs: "-2576980379", rhs: "-1", expecting: "-2576980379") + self.andTest(lhs: "-2576980379", rhs: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-2576980379", rhs: "-8589934592", expecting: "-8589934592") + self.andTest(lhs: "-2576980379", rhs: "7730941133", expecting: "5440291909") + self.andTest(lhs: "-2576980379", rhs: "-7730941133", expecting: "-8017272287") + self.andTest(lhs: "-2576980379", rhs: "6871947674", expecting: "4294967296") + self.andTest(lhs: "-2576980379", rhs: "-6871947674", expecting: "-6871947676") + self.andTest(lhs: "-2576980379", rhs: "6012954215", expecting: "6012954213") + self.andTest(lhs: "-2576980379", rhs: "-6012954215", expecting: "-8589934591") + self.andTest(lhs: "-2576980379", rhs: "5153960756", expecting: "4867629604") + self.andTest(lhs: "-2576980379", rhs: "-5153960756", expecting: "-7444609980") + self.andTest(lhs: "-2576980379", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "-2576980379", rhs: "-4294967297", expecting: "-6871947675") + self.andTest(lhs: "-2576980379", rhs: "3435973838", expecting: "1145324612") + self.andTest(lhs: "-2576980379", rhs: "-3435973838", expecting: "-3722304992") + self.andTest(lhs: "-2576980379", rhs: "2576980379", expecting: "1") + self.andTest(lhs: "-2576980379", rhs: "-2576980379", expecting: "-2576980379") + self.andTest(lhs: "-2576980379", rhs: "1717986920", expecting: "1717986912") + self.andTest(lhs: "-2576980379", rhs: "-1717986920", expecting: "-4294967296") + self.andTest(lhs: "-2576980379", rhs: "858993461", expecting: "572662309") + self.andTest(lhs: "-2576980379", rhs: "-858993461", expecting: "-3149642687") + 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: "8589934592", expecting: "0") + self.andTest(lhs: "1717986920", rhs: "-8589934592", expecting: "0") + self.andTest(lhs: "1717986920", rhs: "7730941133", expecting: "1145324616") + self.andTest(lhs: "1717986920", rhs: "-7730941133", expecting: "572662304") + self.andTest(lhs: "1717986920", rhs: "6871947674", expecting: "8") + self.andTest(lhs: "1717986920", rhs: "-6871947674", expecting: "1717986912") + self.andTest(lhs: "1717986920", rhs: "6012954215", expecting: "1717986912") + self.andTest(lhs: "1717986920", rhs: "-6012954215", expecting: "8") + self.andTest(lhs: "1717986920", rhs: "5153960756", expecting: "572662304") + self.andTest(lhs: "1717986920", rhs: "-5153960756", expecting: "1145324616") + self.andTest(lhs: "1717986920", rhs: "4294967297", expecting: "0") + self.andTest(lhs: "1717986920", rhs: "-4294967297", expecting: "1717986920") + self.andTest(lhs: "1717986920", rhs: "3435973838", expecting: "1145324616") + self.andTest(lhs: "1717986920", rhs: "-3435973838", expecting: "572662304") + self.andTest(lhs: "1717986920", rhs: "2576980379", expecting: "8") + self.andTest(lhs: "1717986920", rhs: "-2576980379", expecting: "1717986912") + self.andTest(lhs: "1717986920", rhs: "1717986920", expecting: "1717986920") + self.andTest(lhs: "1717986920", rhs: "-1717986920", expecting: "8") + self.andTest(lhs: "1717986920", rhs: "858993461", expecting: "572662304") + self.andTest(lhs: "1717986920", rhs: "-858993461", expecting: "1145324616") + 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-1717986920", rhs: "-8589934592", expecting: "-8589934592") + self.andTest(lhs: "-1717986920", rhs: "7730941133", expecting: "6585616520") + self.andTest(lhs: "-1717986920", rhs: "-7730941133", expecting: "-8303603440") + self.andTest(lhs: "-1717986920", rhs: "6871947674", expecting: "6871947672") + self.andTest(lhs: "-1717986920", rhs: "-6871947674", expecting: "-8589934592") + self.andTest(lhs: "-1717986920", rhs: "6012954215", expecting: "4294967296") + self.andTest(lhs: "-1717986920", rhs: "-6012954215", expecting: "-6012954216") + self.andTest(lhs: "-1717986920", rhs: "5153960756", expecting: "4581298448") + self.andTest(lhs: "-1717986920", rhs: "-5153960756", expecting: "-6299285368") + self.andTest(lhs: "-1717986920", rhs: "4294967297", expecting: "4294967296") + self.andTest(lhs: "-1717986920", rhs: "-4294967297", expecting: "-6012954216") + self.andTest(lhs: "-1717986920", rhs: "3435973838", expecting: "2290649224") + self.andTest(lhs: "-1717986920", rhs: "-3435973838", expecting: "-4008636144") + self.andTest(lhs: "-1717986920", rhs: "2576980379", expecting: "2576980376") + self.andTest(lhs: "-1717986920", rhs: "-2576980379", expecting: "-4294967296") + self.andTest(lhs: "-1717986920", rhs: "1717986920", expecting: "8") + self.andTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "-1717986920") + self.andTest(lhs: "-1717986920", rhs: "858993461", expecting: "286331152") + self.andTest(lhs: "-1717986920", rhs: "-858993461", expecting: "-2004318072") + self.andTest(lhs: "858993461", rhs: "0", expecting: "0") + self.andTest(lhs: "858993461", rhs: "1", expecting: "1") + self.andTest(lhs: "858993461", rhs: "-1", expecting: "858993461") + self.andTest(lhs: "858993461", rhs: "8589934592", expecting: "0") + self.andTest(lhs: "858993461", rhs: "-8589934592", expecting: "0") + self.andTest(lhs: "858993461", rhs: "7730941133", expecting: "5") + self.andTest(lhs: "858993461", rhs: "-7730941133", expecting: "858993457") + self.andTest(lhs: "858993461", rhs: "6871947674", expecting: "286331152") + self.andTest(lhs: "858993461", rhs: "-6871947674", expecting: "572662308") + self.andTest(lhs: "858993461", rhs: "6012954215", expecting: "572662309") + self.andTest(lhs: "858993461", rhs: "-6012954215", expecting: "286331153") + self.andTest(lhs: "858993461", rhs: "5153960756", expecting: "858993460") + self.andTest(lhs: "858993461", rhs: "-5153960756", expecting: "4") + self.andTest(lhs: "858993461", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "858993461", rhs: "-4294967297", expecting: "858993461") + self.andTest(lhs: "858993461", rhs: "3435973838", expecting: "4") + self.andTest(lhs: "858993461", rhs: "-3435973838", expecting: "858993456") + self.andTest(lhs: "858993461", rhs: "2576980379", expecting: "286331153") + self.andTest(lhs: "858993461", rhs: "-2576980379", expecting: "572662309") + self.andTest(lhs: "858993461", rhs: "1717986920", expecting: "572662304") + self.andTest(lhs: "858993461", rhs: "-1717986920", expecting: "286331152") + self.andTest(lhs: "858993461", rhs: "858993461", expecting: "858993461") + self.andTest(lhs: "858993461", rhs: "-858993461", expecting: "1") + self.andTest(lhs: "-858993461", rhs: "0", expecting: "0") + self.andTest(lhs: "-858993461", rhs: "1", expecting: "1") + self.andTest(lhs: "-858993461", rhs: "-1", expecting: "-858993461") + self.andTest(lhs: "-858993461", rhs: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-858993461", rhs: "-8589934592", expecting: "-8589934592") + self.andTest(lhs: "-858993461", rhs: "7730941133", expecting: "7730941129") + self.andTest(lhs: "-858993461", rhs: "-7730941133", expecting: "-8589934589") + self.andTest(lhs: "-858993461", rhs: "6871947674", expecting: "6585616522") + self.andTest(lhs: "-858993461", rhs: "-6871947674", expecting: "-7444609982") + self.andTest(lhs: "-858993461", rhs: "6012954215", expecting: "5440291907") + self.andTest(lhs: "-858993461", rhs: "-6012954215", expecting: "-6299285367") + self.andTest(lhs: "-858993461", rhs: "5153960756", expecting: "4294967296") + self.andTest(lhs: "-858993461", rhs: "-5153960756", expecting: "-5153960760") + self.andTest(lhs: "-858993461", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "-858993461", rhs: "-4294967297", expecting: "-5153960757") + self.andTest(lhs: "-858993461", rhs: "3435973838", expecting: "3435973834") + self.andTest(lhs: "-858993461", rhs: "-3435973838", expecting: "-4294967294") + self.andTest(lhs: "-858993461", rhs: "2576980379", expecting: "2290649227") + self.andTest(lhs: "-858993461", rhs: "-2576980379", expecting: "-3149642687") + self.andTest(lhs: "-858993461", rhs: "1717986920", expecting: "1145324616") + self.andTest(lhs: "-858993461", rhs: "-1717986920", expecting: "-2004318072") + self.andTest(lhs: "-858993461", rhs: "858993461", expecting: "1") + self.andTest(lhs: "-858993461", rhs: "-858993461", expecting: "-858993461") + } + + func test_and_int_big() { + 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: "8589934592", rhs: "0", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "1", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-1", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "18446744073709551615", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "-18446744073709551615", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "18446744073709551617", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-18446744073709551617", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "18446744073709551623", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-18446744073709551623", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "18446744073709551629", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-18446744073709551629", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "8589934592") + self.andTest(lhs: "8589934592", rhs: "18446744073709551635", expecting: "0") + self.andTest(lhs: "8589934592", rhs: "-18446744073709551635", expecting: "8589934592") + self.andTest(lhs: "-8589934592", rhs: "0", expecting: "0") + self.andTest(lhs: "-8589934592", rhs: "1", expecting: "0") + self.andTest(lhs: "-8589934592", rhs: "-1", expecting: "-8589934592") + self.andTest(lhs: "-8589934592", rhs: "18446744073709551615", expecting: "18446744065119617024") + self.andTest(lhs: "-8589934592", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-8589934592", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-8589934592", rhs: "-18446744073709551617", expecting: "-18446744082299486208") + self.andTest(lhs: "-8589934592", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351514067697664") + self.andTest(lhs: "-8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "-8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915262451318784") + self.andTest(lhs: "-8589934592", rhs: "18446744073709551623", expecting: "18446744073709551616") + self.andTest(lhs: "-8589934592", rhs: "-18446744073709551623", expecting: "-18446744082299486208") + self.andTest(lhs: "-8589934592", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815956325007360") + self.andTest(lhs: "-8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343232") + self.andTest(lhs: "-8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095410803277824") + self.andTest(lhs: "-8589934592", rhs: "18446744073709551629", expecting: "18446744073709551616") + self.andTest(lhs: "-8589934592", rhs: "-18446744073709551629", expecting: "-18446744082299486208") + self.andTest(lhs: "-8589934592", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280398582317056") + self.andTest(lhs: "-8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "-8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275559155236864") + self.andTest(lhs: "-8589934592", rhs: "18446744073709551635", expecting: "18446744073709551616") + self.andTest(lhs: "-8589934592", rhs: "-18446744073709551635", expecting: "-18446744082299486208") + self.andTest(lhs: "7730941133", rhs: "0", expecting: "0") + self.andTest(lhs: "7730941133", rhs: "1", expecting: "1") + self.andTest(lhs: "7730941133", rhs: "-1", expecting: "7730941133") + self.andTest(lhs: "7730941133", rhs: "18446744073709551615", expecting: "7730941133") + self.andTest(lhs: "7730941133", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "7730941133", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "7730941133", rhs: "-18446744073709551617", expecting: "7730941133") + self.andTest(lhs: "7730941133", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "7730941132") + self.andTest(lhs: "7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "5") + self.andTest(lhs: "7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "7730941129") + self.andTest(lhs: "7730941133", rhs: "18446744073709551623", expecting: "5") + self.andTest(lhs: "7730941133", rhs: "-18446744073709551623", expecting: "7730941129") + self.andTest(lhs: "7730941133", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "7730941132") + self.andTest(lhs: "7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "9") + self.andTest(lhs: "7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "7730941125") + self.andTest(lhs: "7730941133", rhs: "18446744073709551629", expecting: "13") + self.andTest(lhs: "7730941133", rhs: "-18446744073709551629", expecting: "7730941121") + self.andTest(lhs: "7730941133", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "7730941132") + self.andTest(lhs: "7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "7730941133") + self.andTest(lhs: "7730941133", rhs: "18446744073709551635", expecting: "1") + self.andTest(lhs: "7730941133", rhs: "-18446744073709551635", expecting: "7730941133") + self.andTest(lhs: "-7730941133", rhs: "0", expecting: "0") + self.andTest(lhs: "-7730941133", rhs: "1", expecting: "1") + self.andTest(lhs: "-7730941133", rhs: "-1", expecting: "-7730941133") + self.andTest(lhs: "-7730941133", rhs: "18446744073709551615", expecting: "18446744065978610483") + self.andTest(lhs: "-7730941133", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.andTest(lhs: "-7730941133", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "-7730941133", rhs: "-18446744073709551617", expecting: "-18446744081440492749") + self.andTest(lhs: "-7730941133", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "-7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351513208704206") + self.andTest(lhs: "-7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384193") + self.andTest(lhs: "-7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915261592325325") + self.andTest(lhs: "-7730941133", rhs: "18446744073709551623", expecting: "18446744073709551619") + self.andTest(lhs: "-7730941133", rhs: "-18446744073709551623", expecting: "-18446744081440492751") + self.andTest(lhs: "-7730941133", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "-7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815955466013902") + self.andTest(lhs: "-7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343235") + self.andTest(lhs: "-7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095409944284367") + self.andTest(lhs: "-7730941133", rhs: "18446744073709551629", expecting: "18446744073709551617") + self.andTest(lhs: "-7730941133", rhs: "-18446744073709551629", expecting: "-18446744081440492749") + self.andTest(lhs: "-7730941133", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "-7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280397723323598") + self.andTest(lhs: "-7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "-7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275558296243421") + self.andTest(lhs: "-7730941133", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.andTest(lhs: "-7730941133", rhs: "-18446744073709551635", expecting: "-18446744081440492767") + self.andTest(lhs: "6871947674", rhs: "0", expecting: "0") + self.andTest(lhs: "6871947674", rhs: "1", expecting: "0") + self.andTest(lhs: "6871947674", rhs: "-1", expecting: "6871947674") + self.andTest(lhs: "6871947674", rhs: "18446744073709551615", expecting: "6871947674") + self.andTest(lhs: "6871947674", rhs: "-18446744073709551615", expecting: "0") + self.andTest(lhs: "6871947674", rhs: "18446744073709551617", expecting: "0") + self.andTest(lhs: "6871947674", rhs: "-18446744073709551617", expecting: "6871947674") + self.andTest(lhs: "6871947674", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "6871947674") + self.andTest(lhs: "6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.andTest(lhs: "6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6871947674") + self.andTest(lhs: "6871947674", rhs: "18446744073709551623", expecting: "2") + self.andTest(lhs: "6871947674", rhs: "-18446744073709551623", expecting: "6871947672") + self.andTest(lhs: "6871947674", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "6871947674") + self.andTest(lhs: "6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "10") + self.andTest(lhs: "6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6871947664") + self.andTest(lhs: "6871947674", rhs: "18446744073709551629", expecting: "8") + self.andTest(lhs: "6871947674", rhs: "-18446744073709551629", expecting: "6871947666") + self.andTest(lhs: "6871947674", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "6871947674") + self.andTest(lhs: "6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "16") + self.andTest(lhs: "6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6871947658") + self.andTest(lhs: "6871947674", rhs: "18446744073709551635", expecting: "18") + self.andTest(lhs: "6871947674", rhs: "-18446744073709551635", expecting: "6871947656") + self.andTest(lhs: "-6871947674", rhs: "0", expecting: "0") + self.andTest(lhs: "-6871947674", rhs: "1", expecting: "0") + self.andTest(lhs: "-6871947674", rhs: "-1", expecting: "-6871947674") + self.andTest(lhs: "-6871947674", rhs: "18446744073709551615", expecting: "18446744066837603942") + self.andTest(lhs: "-6871947674", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-6871947674", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-6871947674", rhs: "-18446744073709551617", expecting: "-18446744080581499290") + self.andTest(lhs: "-6871947674", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "-6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351512349710746") + self.andTest(lhs: "-6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "-6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915260733331870") + self.andTest(lhs: "-6871947674", rhs: "18446744073709551623", expecting: "18446744073709551622") + self.andTest(lhs: "-6871947674", rhs: "-18446744073709551623", expecting: "-18446744080581499296") + self.andTest(lhs: "-6871947674", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "-6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815954607020442") + self.andTest(lhs: "-6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343234") + self.andTest(lhs: "-6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095409085290908") + self.andTest(lhs: "-6871947674", rhs: "18446744073709551629", expecting: "18446744073709551620") + self.andTest(lhs: "-6871947674", rhs: "-18446744073709551629", expecting: "-18446744080581499294") + self.andTest(lhs: "-6871947674", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "-6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280396864330138") + self.andTest(lhs: "-6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "-6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275557437249946") + self.andTest(lhs: "-6871947674", rhs: "18446744073709551635", expecting: "18446744073709551618") + self.andTest(lhs: "-6871947674", rhs: "-18446744073709551635", expecting: "-18446744080581499292") + self.andTest(lhs: "6012954215", rhs: "0", expecting: "0") + self.andTest(lhs: "6012954215", rhs: "1", expecting: "1") + self.andTest(lhs: "6012954215", rhs: "-1", expecting: "6012954215") + self.andTest(lhs: "6012954215", rhs: "18446744073709551615", expecting: "6012954215") + self.andTest(lhs: "6012954215", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "6012954215", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "6012954215", rhs: "-18446744073709551617", expecting: "6012954215") + self.andTest(lhs: "6012954215", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "6012954214") + self.andTest(lhs: "6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "5") + self.andTest(lhs: "6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6012954211") + self.andTest(lhs: "6012954215", rhs: "18446744073709551623", expecting: "7") + self.andTest(lhs: "6012954215", rhs: "-18446744073709551623", expecting: "6012954209") + self.andTest(lhs: "6012954215", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "6012954214") + self.andTest(lhs: "6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "3") + self.andTest(lhs: "6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6012954213") + self.andTest(lhs: "6012954215", rhs: "18446744073709551629", expecting: "5") + self.andTest(lhs: "6012954215", rhs: "-18446744073709551629", expecting: "6012954211") + self.andTest(lhs: "6012954215", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "6012954214") + self.andTest(lhs: "6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6012954215") + self.andTest(lhs: "6012954215", rhs: "18446744073709551635", expecting: "3") + self.andTest(lhs: "6012954215", rhs: "-18446744073709551635", expecting: "6012954213") + self.andTest(lhs: "-6012954215", rhs: "0", expecting: "0") + self.andTest(lhs: "-6012954215", rhs: "1", expecting: "1") + self.andTest(lhs: "-6012954215", rhs: "-1", expecting: "-6012954215") + self.andTest(lhs: "-6012954215", rhs: "18446744073709551615", expecting: "18446744067696597401") + self.andTest(lhs: "-6012954215", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.andTest(lhs: "-6012954215", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "-6012954215", rhs: "-18446744073709551617", expecting: "-18446744079722505831") + self.andTest(lhs: "-6012954215", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351511490717288") + self.andTest(lhs: "-6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384193") + self.andTest(lhs: "-6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915259874338407") + self.andTest(lhs: "-6012954215", rhs: "18446744073709551623", expecting: "18446744073709551617") + self.andTest(lhs: "-6012954215", rhs: "-18446744073709551623", expecting: "-18446744079722505831") + self.andTest(lhs: "-6012954215", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815953748026984") + self.andTest(lhs: "-6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343241") + self.andTest(lhs: "-6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095408226297455") + self.andTest(lhs: "-6012954215", rhs: "18446744073709551629", expecting: "18446744073709551625") + self.andTest(lhs: "-6012954215", rhs: "-18446744073709551629", expecting: "-18446744079722505839") + self.andTest(lhs: "-6012954215", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280396005336680") + self.andTest(lhs: "-6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "-6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275556578256503") + self.andTest(lhs: "-6012954215", rhs: "18446744073709551635", expecting: "18446744073709551633") + self.andTest(lhs: "-6012954215", rhs: "-18446744073709551635", expecting: "-18446744079722505847") + self.andTest(lhs: "5153960756", rhs: "0", expecting: "0") + self.andTest(lhs: "5153960756", rhs: "1", expecting: "0") + self.andTest(lhs: "5153960756", rhs: "-1", expecting: "5153960756") + self.andTest(lhs: "5153960756", rhs: "18446744073709551615", expecting: "5153960756") + self.andTest(lhs: "5153960756", rhs: "-18446744073709551615", expecting: "0") + self.andTest(lhs: "5153960756", rhs: "18446744073709551617", expecting: "0") + self.andTest(lhs: "5153960756", rhs: "-18446744073709551617", expecting: "5153960756") + self.andTest(lhs: "5153960756", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "5153960756") + self.andTest(lhs: "5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "4") + self.andTest(lhs: "5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "5153960752") + self.andTest(lhs: "5153960756", rhs: "18446744073709551623", expecting: "4") + self.andTest(lhs: "5153960756", rhs: "-18446744073709551623", expecting: "5153960752") + self.andTest(lhs: "5153960756", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "5153960756") + self.andTest(lhs: "5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "0") + self.andTest(lhs: "5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "5153960756") + self.andTest(lhs: "5153960756", rhs: "18446744073709551629", expecting: "4") + self.andTest(lhs: "5153960756", rhs: "-18446744073709551629", expecting: "5153960752") + self.andTest(lhs: "5153960756", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "5153960756") + self.andTest(lhs: "5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "16") + self.andTest(lhs: "5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "5153960740") + self.andTest(lhs: "5153960756", rhs: "18446744073709551635", expecting: "16") + self.andTest(lhs: "5153960756", rhs: "-18446744073709551635", expecting: "5153960740") + self.andTest(lhs: "-5153960756", rhs: "0", expecting: "0") + self.andTest(lhs: "-5153960756", rhs: "1", expecting: "0") + self.andTest(lhs: "-5153960756", rhs: "-1", expecting: "-5153960756") + self.andTest(lhs: "-5153960756", rhs: "18446744073709551615", expecting: "18446744068555590860") + self.andTest(lhs: "-5153960756", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-5153960756", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-5153960756", rhs: "-18446744073709551617", expecting: "-18446744078863512372") + self.andTest(lhs: "-5153960756", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351510631723828") + self.andTest(lhs: "-5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "-5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915259015344952") + self.andTest(lhs: "-5153960756", rhs: "18446744073709551623", expecting: "18446744073709551620") + self.andTest(lhs: "-5153960756", rhs: "-18446744073709551623", expecting: "-18446744078863512376") + self.andTest(lhs: "-5153960756", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815952889033524") + self.andTest(lhs: "-5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343240") + self.andTest(lhs: "-5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095407367303996") + self.andTest(lhs: "-5153960756", rhs: "18446744073709551629", expecting: "18446744073709551628") + self.andTest(lhs: "-5153960756", rhs: "-18446744073709551629", expecting: "-18446744078863512384") + self.andTest(lhs: "-5153960756", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280395146343220") + self.andTest(lhs: "-5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "-5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275555719263028") + self.andTest(lhs: "-5153960756", rhs: "18446744073709551635", expecting: "18446744073709551616") + self.andTest(lhs: "-5153960756", rhs: "-18446744073709551635", expecting: "-18446744078863512372") + self.andTest(lhs: "4294967297", rhs: "0", expecting: "0") + self.andTest(lhs: "4294967297", rhs: "1", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "-1", expecting: "4294967297") + self.andTest(lhs: "4294967297", rhs: "18446744073709551615", expecting: "4294967297") + self.andTest(lhs: "4294967297", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "-18446744073709551617", expecting: "4294967297") + self.andTest(lhs: "4294967297", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "4294967296") + self.andTest(lhs: "4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "4294967297") + self.andTest(lhs: "4294967297", rhs: "18446744073709551623", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "-18446744073709551623", expecting: "4294967297") + self.andTest(lhs: "4294967297", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "4294967296") + self.andTest(lhs: "4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "4294967297") + self.andTest(lhs: "4294967297", rhs: "18446744073709551629", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "-18446744073709551629", expecting: "4294967297") + self.andTest(lhs: "4294967297", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "4294967296") + self.andTest(lhs: "4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "4294967297") + self.andTest(lhs: "4294967297", rhs: "18446744073709551635", expecting: "1") + self.andTest(lhs: "4294967297", rhs: "-18446744073709551635", expecting: "4294967297") + self.andTest(lhs: "-4294967297", rhs: "0", expecting: "0") + self.andTest(lhs: "-4294967297", rhs: "1", expecting: "1") + self.andTest(lhs: "-4294967297", rhs: "-1", expecting: "-4294967297") + self.andTest(lhs: "-4294967297", rhs: "18446744073709551615", expecting: "18446744069414584319") + self.andTest(lhs: "-4294967297", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.andTest(lhs: "-4294967297", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "-4294967297", rhs: "-18446744073709551617", expecting: "-18446744078004518913") + self.andTest(lhs: "-4294967297", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "-4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351509772730370") + self.andTest(lhs: "-4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "-4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915258156351493") + self.andTest(lhs: "-4294967297", rhs: "18446744073709551623", expecting: "18446744073709551623") + self.andTest(lhs: "-4294967297", rhs: "-18446744073709551623", expecting: "-18446744078004518919") + self.andTest(lhs: "-4294967297", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "-4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815952030040066") + self.andTest(lhs: "-4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "-4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095406508310539") + self.andTest(lhs: "-4294967297", rhs: "18446744073709551629", expecting: "18446744073709551629") + self.andTest(lhs: "-4294967297", rhs: "-18446744073709551629", expecting: "-18446744078004518925") + self.andTest(lhs: "-4294967297", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "-4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280394287349762") + self.andTest(lhs: "-4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "-4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275554860269585") + self.andTest(lhs: "-4294967297", rhs: "18446744073709551635", expecting: "18446744073709551635") + self.andTest(lhs: "-4294967297", rhs: "-18446744073709551635", expecting: "-18446744078004518931") + self.andTest(lhs: "3435973838", rhs: "0", expecting: "0") + self.andTest(lhs: "3435973838", rhs: "1", expecting: "0") + self.andTest(lhs: "3435973838", rhs: "-1", expecting: "3435973838") + self.andTest(lhs: "3435973838", rhs: "18446744073709551615", expecting: "3435973838") + self.andTest(lhs: "3435973838", rhs: "-18446744073709551615", expecting: "0") + self.andTest(lhs: "3435973838", rhs: "18446744073709551617", expecting: "0") + self.andTest(lhs: "3435973838", rhs: "-18446744073709551617", expecting: "3435973838") + self.andTest(lhs: "3435973838", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "3435973838") + self.andTest(lhs: "3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "4") + self.andTest(lhs: "3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "3435973834") + self.andTest(lhs: "3435973838", rhs: "18446744073709551623", expecting: "6") + self.andTest(lhs: "3435973838", rhs: "-18446744073709551623", expecting: "3435973832") + self.andTest(lhs: "3435973838", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "3435973838") + self.andTest(lhs: "3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "10") + self.andTest(lhs: "3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "3435973828") + self.andTest(lhs: "3435973838", rhs: "18446744073709551629", expecting: "12") + self.andTest(lhs: "3435973838", rhs: "-18446744073709551629", expecting: "3435973826") + self.andTest(lhs: "3435973838", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "3435973838") + self.andTest(lhs: "3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.andTest(lhs: "3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "3435973838") + self.andTest(lhs: "3435973838", rhs: "18446744073709551635", expecting: "2") + self.andTest(lhs: "3435973838", rhs: "-18446744073709551635", expecting: "3435973836") + self.andTest(lhs: "-3435973838", rhs: "0", expecting: "0") + self.andTest(lhs: "-3435973838", rhs: "1", expecting: "0") + self.andTest(lhs: "-3435973838", rhs: "-1", expecting: "-3435973838") + self.andTest(lhs: "-3435973838", rhs: "18446744073709551615", expecting: "18446744070273577778") + self.andTest(lhs: "-3435973838", rhs: "-18446744073709551615", expecting: "-18446744073709551616") + self.andTest(lhs: "-3435973838", rhs: "18446744073709551617", expecting: "18446744073709551616") + self.andTest(lhs: "-3435973838", rhs: "-18446744073709551617", expecting: "-18446744077145525454") + self.andTest(lhs: "-3435973838", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "-3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351508913736910") + self.andTest(lhs: "-3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "-3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915257297358030") + self.andTest(lhs: "-3435973838", rhs: "18446744073709551623", expecting: "18446744073709551618") + self.andTest(lhs: "-3435973838", rhs: "-18446744073709551623", expecting: "-18446744077145525456") + self.andTest(lhs: "-3435973838", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "-3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815951171046606") + self.andTest(lhs: "-3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343234") + self.andTest(lhs: "-3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095405649317072") + self.andTest(lhs: "-3435973838", rhs: "18446744073709551629", expecting: "18446744073709551616") + self.andTest(lhs: "-3435973838", rhs: "-18446744073709551629", expecting: "-18446744077145525454") + self.andTest(lhs: "-3435973838", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "-3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280393428356302") + self.andTest(lhs: "-3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.andTest(lhs: "-3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275554001276126") + self.andTest(lhs: "-3435973838", rhs: "18446744073709551635", expecting: "18446744073709551634") + self.andTest(lhs: "-3435973838", rhs: "-18446744073709551635", expecting: "-18446744077145525472") + self.andTest(lhs: "2576980379", rhs: "0", expecting: "0") + self.andTest(lhs: "2576980379", rhs: "1", expecting: "1") + self.andTest(lhs: "2576980379", rhs: "-1", expecting: "2576980379") + self.andTest(lhs: "2576980379", rhs: "18446744073709551615", expecting: "2576980379") + self.andTest(lhs: "2576980379", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "2576980379", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "2576980379", rhs: "-18446744073709551617", expecting: "2576980379") + self.andTest(lhs: "2576980379", rhs: "340282366920938463481821351505477763074", expecting: "2") + self.andTest(lhs: "2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "2576980378") + self.andTest(lhs: "2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "1") + self.andTest(lhs: "2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "2576980379") + self.andTest(lhs: "2576980379", rhs: "18446744073709551623", expecting: "3") + self.andTest(lhs: "2576980379", rhs: "-18446744073709551623", expecting: "2576980377") + self.andTest(lhs: "2576980379", rhs: "340282366920938463592501815947735072770", expecting: "2") + self.andTest(lhs: "2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "2576980378") + self.andTest(lhs: "2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "11") + self.andTest(lhs: "2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "2576980369") + self.andTest(lhs: "2576980379", rhs: "18446744073709551629", expecting: "9") + self.andTest(lhs: "2576980379", rhs: "-18446744073709551629", expecting: "2576980371") + self.andTest(lhs: "2576980379", rhs: "340282366920938463703182280389992382466", expecting: "2") + self.andTest(lhs: "2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "2576980378") + self.andTest(lhs: "2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "17") + self.andTest(lhs: "2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "2576980363") + self.andTest(lhs: "2576980379", rhs: "18446744073709551635", expecting: "19") + self.andTest(lhs: "2576980379", rhs: "-18446744073709551635", expecting: "2576980361") + self.andTest(lhs: "-2576980379", rhs: "0", expecting: "0") + self.andTest(lhs: "-2576980379", rhs: "1", expecting: "1") + self.andTest(lhs: "-2576980379", rhs: "-1", expecting: "-2576980379") + self.andTest(lhs: "-2576980379", rhs: "18446744073709551615", expecting: "18446744071132571237") + self.andTest(lhs: "-2576980379", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.andTest(lhs: "-2576980379", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "-2576980379", rhs: "-18446744073709551617", expecting: "-18446744076286531995") + self.andTest(lhs: "-2576980379", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "-2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351508054743452") + self.andTest(lhs: "-2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "-2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915256438364575") + self.andTest(lhs: "-2576980379", rhs: "18446744073709551623", expecting: "18446744073709551621") + self.andTest(lhs: "-2576980379", rhs: "-18446744073709551623", expecting: "-18446744076286531999") + self.andTest(lhs: "-2576980379", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "-2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815950312053148") + self.andTest(lhs: "-2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343233") + self.andTest(lhs: "-2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404790323611") + self.andTest(lhs: "-2576980379", rhs: "18446744073709551629", expecting: "18446744073709551621") + self.andTest(lhs: "-2576980379", rhs: "-18446744073709551629", expecting: "-18446744076286531999") + self.andTest(lhs: "-2576980379", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "-2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280392569362844") + self.andTest(lhs: "-2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302273") + self.andTest(lhs: "-2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275553142282651") + self.andTest(lhs: "-2576980379", rhs: "18446744073709551635", expecting: "18446744073709551617") + self.andTest(lhs: "-2576980379", rhs: "-18446744073709551635", expecting: "-18446744076286531995") + 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: "1717986920") + self.andTest(lhs: "1717986920", rhs: "-18446744073709551615", expecting: "0") + self.andTest(lhs: "1717986920", rhs: "18446744073709551617", expecting: "0") + self.andTest(lhs: "1717986920", rhs: "-18446744073709551617", expecting: "1717986920") + self.andTest(lhs: "1717986920", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "1717986920", rhs: "-340282366920938463481821351505477763074", expecting: "1717986920") + self.andTest(lhs: "1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "0") + self.andTest(lhs: "1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "1717986920") + self.andTest(lhs: "1717986920", rhs: "18446744073709551623", expecting: "0") + self.andTest(lhs: "1717986920", rhs: "-18446744073709551623", expecting: "1717986920") + self.andTest(lhs: "1717986920", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "1717986920", rhs: "-340282366920938463592501815947735072770", expecting: "1717986920") + self.andTest(lhs: "1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "8") + self.andTest(lhs: "1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "1717986912") + self.andTest(lhs: "1717986920", rhs: "18446744073709551629", expecting: "8") + self.andTest(lhs: "1717986920", rhs: "-18446744073709551629", expecting: "1717986912") + self.andTest(lhs: "1717986920", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "1717986920", rhs: "-340282366920938463703182280389992382466", expecting: "1717986920") + self.andTest(lhs: "1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "0") + self.andTest(lhs: "1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "1717986920") + self.andTest(lhs: "1717986920", rhs: "18446744073709551635", expecting: "0") + self.andTest(lhs: "1717986920", rhs: "-18446744073709551635", expecting: "1717986920") + 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: "858993461", rhs: "0", expecting: "0") + self.andTest(lhs: "858993461", rhs: "1", expecting: "1") + self.andTest(lhs: "858993461", rhs: "-1", expecting: "858993461") + self.andTest(lhs: "858993461", rhs: "18446744073709551615", expecting: "858993461") + self.andTest(lhs: "858993461", rhs: "-18446744073709551615", expecting: "1") + self.andTest(lhs: "858993461", rhs: "18446744073709551617", expecting: "1") + self.andTest(lhs: "858993461", rhs: "-18446744073709551617", expecting: "858993461") + self.andTest(lhs: "858993461", rhs: "340282366920938463481821351505477763074", expecting: "0") + self.andTest(lhs: "858993461", rhs: "-340282366920938463481821351505477763074", expecting: "858993460") + self.andTest(lhs: "858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "5") + self.andTest(lhs: "858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "858993457") + self.andTest(lhs: "858993461", rhs: "18446744073709551623", expecting: "5") + self.andTest(lhs: "858993461", rhs: "-18446744073709551623", expecting: "858993457") + self.andTest(lhs: "858993461", rhs: "340282366920938463592501815947735072770", expecting: "0") + self.andTest(lhs: "858993461", rhs: "-340282366920938463592501815947735072770", expecting: "858993460") + self.andTest(lhs: "858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "1") + self.andTest(lhs: "858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "858993461") + self.andTest(lhs: "858993461", rhs: "18446744073709551629", expecting: "5") + self.andTest(lhs: "858993461", rhs: "-18446744073709551629", expecting: "858993457") + self.andTest(lhs: "858993461", rhs: "340282366920938463703182280389992382466", expecting: "0") + self.andTest(lhs: "858993461", rhs: "-340282366920938463703182280389992382466", expecting: "858993460") + self.andTest(lhs: "858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "17") + self.andTest(lhs: "858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "858993445") + self.andTest(lhs: "858993461", rhs: "18446744073709551635", expecting: "17") + self.andTest(lhs: "858993461", rhs: "-18446744073709551635", expecting: "858993445") + self.andTest(lhs: "-858993461", rhs: "0", expecting: "0") + self.andTest(lhs: "-858993461", rhs: "1", expecting: "1") + self.andTest(lhs: "-858993461", rhs: "-1", expecting: "-858993461") + self.andTest(lhs: "-858993461", rhs: "18446744073709551615", expecting: "18446744072850558155") + self.andTest(lhs: "-858993461", rhs: "-18446744073709551615", expecting: "-18446744073709551615") + self.andTest(lhs: "-858993461", rhs: "18446744073709551617", expecting: "18446744073709551617") + self.andTest(lhs: "-858993461", rhs: "-18446744073709551617", expecting: "-18446744074568545077") + self.andTest(lhs: "-858993461", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "-858993461", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506336756534") + self.andTest(lhs: "-858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915253861384193") + self.andTest(lhs: "-858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254720377653") + self.andTest(lhs: "-858993461", rhs: "18446744073709551623", expecting: "18446744073709551619") + self.andTest(lhs: "-858993461", rhs: "-18446744073709551623", expecting: "-18446744074568545079") + self.andTest(lhs: "-858993461", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "-858993461", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948594066230") + self.andTest(lhs: "-858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "-858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403072336703") + self.andTest(lhs: "-858993461", rhs: "18446744073709551629", expecting: "18446744073709551625") + self.andTest(lhs: "-858993461", rhs: "-18446744073709551629", expecting: "-18446744074568545085") + self.andTest(lhs: "-858993461", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "-858993461", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390851375926") + self.andTest(lhs: "-858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275550565302273") + self.andTest(lhs: "-858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551424295733") + self.andTest(lhs: "-858993461", rhs: "18446744073709551635", expecting: "18446744073709551619") + self.andTest(lhs: "-858993461", rhs: "-18446744073709551635", expecting: "-18446744074568545079") + } + + func test_and_big_int() { + 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: "8589934592", expecting: "0") + self.andTest(lhs: "0", rhs: "-8589934592", expecting: "0") + self.andTest(lhs: "0", rhs: "7730941133", expecting: "0") + self.andTest(lhs: "0", rhs: "-7730941133", expecting: "0") + self.andTest(lhs: "0", rhs: "6871947674", expecting: "0") + self.andTest(lhs: "0", rhs: "-6871947674", expecting: "0") + self.andTest(lhs: "0", rhs: "6012954215", expecting: "0") + self.andTest(lhs: "0", rhs: "-6012954215", expecting: "0") + self.andTest(lhs: "0", rhs: "5153960756", expecting: "0") + self.andTest(lhs: "0", rhs: "-5153960756", expecting: "0") + self.andTest(lhs: "0", rhs: "4294967297", expecting: "0") + self.andTest(lhs: "0", rhs: "-4294967297", expecting: "0") + self.andTest(lhs: "0", rhs: "3435973838", expecting: "0") + self.andTest(lhs: "0", rhs: "-3435973838", expecting: "0") + self.andTest(lhs: "0", rhs: "2576980379", expecting: "0") + self.andTest(lhs: "0", rhs: "-2576980379", expecting: "0") + self.andTest(lhs: "0", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "0", rhs: "-1717986920", expecting: "0") + self.andTest(lhs: "0", rhs: "858993461", expecting: "0") + self.andTest(lhs: "0", rhs: "-858993461", 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: "8589934592", expecting: "0") + self.andTest(lhs: "1", rhs: "-8589934592", expecting: "0") + self.andTest(lhs: "1", rhs: "7730941133", expecting: "1") + self.andTest(lhs: "1", rhs: "-7730941133", expecting: "1") + self.andTest(lhs: "1", rhs: "6871947674", expecting: "0") + self.andTest(lhs: "1", rhs: "-6871947674", expecting: "0") + self.andTest(lhs: "1", rhs: "6012954215", expecting: "1") + self.andTest(lhs: "1", rhs: "-6012954215", expecting: "1") + self.andTest(lhs: "1", rhs: "5153960756", expecting: "0") + self.andTest(lhs: "1", rhs: "-5153960756", expecting: "0") + self.andTest(lhs: "1", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "1", rhs: "-4294967297", expecting: "1") + self.andTest(lhs: "1", rhs: "3435973838", expecting: "0") + self.andTest(lhs: "1", rhs: "-3435973838", expecting: "0") + self.andTest(lhs: "1", rhs: "2576980379", expecting: "1") + self.andTest(lhs: "1", rhs: "-2576980379", expecting: "1") + self.andTest(lhs: "1", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "1", rhs: "-1717986920", expecting: "0") + self.andTest(lhs: "1", rhs: "858993461", expecting: "1") + self.andTest(lhs: "1", rhs: "-858993461", 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-1", rhs: "-8589934592", expecting: "-8589934592") + self.andTest(lhs: "-1", rhs: "7730941133", expecting: "7730941133") + self.andTest(lhs: "-1", rhs: "-7730941133", expecting: "-7730941133") + self.andTest(lhs: "-1", rhs: "6871947674", expecting: "6871947674") + self.andTest(lhs: "-1", rhs: "-6871947674", expecting: "-6871947674") + self.andTest(lhs: "-1", rhs: "6012954215", expecting: "6012954215") + self.andTest(lhs: "-1", rhs: "-6012954215", expecting: "-6012954215") + self.andTest(lhs: "-1", rhs: "5153960756", expecting: "5153960756") + self.andTest(lhs: "-1", rhs: "-5153960756", expecting: "-5153960756") + self.andTest(lhs: "-1", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "-1", rhs: "-4294967297", expecting: "-4294967297") + self.andTest(lhs: "-1", rhs: "3435973838", expecting: "3435973838") + self.andTest(lhs: "-1", rhs: "-3435973838", expecting: "-3435973838") + self.andTest(lhs: "-1", rhs: "2576980379", expecting: "2576980379") + self.andTest(lhs: "-1", rhs: "-2576980379", expecting: "-2576980379") + self.andTest(lhs: "-1", rhs: "1717986920", expecting: "1717986920") + self.andTest(lhs: "-1", rhs: "-1717986920", expecting: "-1717986920") + self.andTest(lhs: "-1", rhs: "858993461", expecting: "858993461") + self.andTest(lhs: "-1", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "18446744073709551615", rhs: "-8589934592", expecting: "18446744065119617024") + self.andTest(lhs: "18446744073709551615", rhs: "7730941133", expecting: "7730941133") + self.andTest(lhs: "18446744073709551615", rhs: "-7730941133", expecting: "18446744065978610483") + self.andTest(lhs: "18446744073709551615", rhs: "6871947674", expecting: "6871947674") + self.andTest(lhs: "18446744073709551615", rhs: "-6871947674", expecting: "18446744066837603942") + self.andTest(lhs: "18446744073709551615", rhs: "6012954215", expecting: "6012954215") + self.andTest(lhs: "18446744073709551615", rhs: "-6012954215", expecting: "18446744067696597401") + self.andTest(lhs: "18446744073709551615", rhs: "5153960756", expecting: "5153960756") + self.andTest(lhs: "18446744073709551615", rhs: "-5153960756", expecting: "18446744068555590860") + self.andTest(lhs: "18446744073709551615", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "18446744073709551615", rhs: "-4294967297", expecting: "18446744069414584319") + self.andTest(lhs: "18446744073709551615", rhs: "3435973838", expecting: "3435973838") + self.andTest(lhs: "18446744073709551615", rhs: "-3435973838", expecting: "18446744070273577778") + self.andTest(lhs: "18446744073709551615", rhs: "2576980379", expecting: "2576980379") + self.andTest(lhs: "18446744073709551615", rhs: "-2576980379", expecting: "18446744071132571237") + self.andTest(lhs: "18446744073709551615", rhs: "1717986920", expecting: "1717986920") + self.andTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "18446744071991564696") + self.andTest(lhs: "18446744073709551615", rhs: "858993461", expecting: "858993461") + self.andTest(lhs: "18446744073709551615", rhs: "-858993461", expecting: "18446744072850558155") + 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: "8589934592", expecting: "0") + self.andTest(lhs: "-18446744073709551615", rhs: "-8589934592", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "7730941133", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-7730941133", expecting: "-18446744073709551615") + self.andTest(lhs: "-18446744073709551615", rhs: "6871947674", expecting: "0") + self.andTest(lhs: "-18446744073709551615", rhs: "-6871947674", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "6012954215", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-6012954215", expecting: "-18446744073709551615") + self.andTest(lhs: "-18446744073709551615", rhs: "5153960756", expecting: "0") + self.andTest(lhs: "-18446744073709551615", rhs: "-5153960756", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-4294967297", expecting: "-18446744073709551615") + self.andTest(lhs: "-18446744073709551615", rhs: "3435973838", expecting: "0") + self.andTest(lhs: "-18446744073709551615", rhs: "-3435973838", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "2576980379", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-2576980379", expecting: "-18446744073709551615") + self.andTest(lhs: "-18446744073709551615", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "-18446744073709551616") + self.andTest(lhs: "-18446744073709551615", rhs: "858993461", expecting: "1") + self.andTest(lhs: "-18446744073709551615", rhs: "-858993461", expecting: "-18446744073709551615") + 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: "8589934592", expecting: "0") + self.andTest(lhs: "18446744073709551617", rhs: "-8589934592", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "7730941133", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-7730941133", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "6871947674", expecting: "0") + self.andTest(lhs: "18446744073709551617", rhs: "-6871947674", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "6012954215", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-6012954215", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "5153960756", expecting: "0") + self.andTest(lhs: "18446744073709551617", rhs: "-5153960756", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-4294967297", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "3435973838", expecting: "0") + self.andTest(lhs: "18446744073709551617", rhs: "-3435973838", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "2576980379", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-2576980379", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551617", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551617", rhs: "858993461", expecting: "1") + self.andTest(lhs: "18446744073709551617", rhs: "-858993461", expecting: "18446744073709551617") + 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-18446744073709551617", rhs: "-8589934592", expecting: "-18446744082299486208") + self.andTest(lhs: "-18446744073709551617", rhs: "7730941133", expecting: "7730941133") + self.andTest(lhs: "-18446744073709551617", rhs: "-7730941133", expecting: "-18446744081440492749") + self.andTest(lhs: "-18446744073709551617", rhs: "6871947674", expecting: "6871947674") + self.andTest(lhs: "-18446744073709551617", rhs: "-6871947674", expecting: "-18446744080581499290") + self.andTest(lhs: "-18446744073709551617", rhs: "6012954215", expecting: "6012954215") + self.andTest(lhs: "-18446744073709551617", rhs: "-6012954215", expecting: "-18446744079722505831") + self.andTest(lhs: "-18446744073709551617", rhs: "5153960756", expecting: "5153960756") + self.andTest(lhs: "-18446744073709551617", rhs: "-5153960756", expecting: "-18446744078863512372") + self.andTest(lhs: "-18446744073709551617", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "-18446744073709551617", rhs: "-4294967297", expecting: "-18446744078004518913") + self.andTest(lhs: "-18446744073709551617", rhs: "3435973838", expecting: "3435973838") + self.andTest(lhs: "-18446744073709551617", rhs: "-3435973838", expecting: "-18446744077145525454") + self.andTest(lhs: "-18446744073709551617", rhs: "2576980379", expecting: "2576980379") + self.andTest(lhs: "-18446744073709551617", rhs: "-2576980379", expecting: "-18446744076286531995") + self.andTest(lhs: "-18446744073709551617", rhs: "1717986920", expecting: "1717986920") + self.andTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "-18446744075427538536") + self.andTest(lhs: "-18446744073709551617", rhs: "858993461", expecting: "858993461") + self.andTest(lhs: "-18446744073709551617", rhs: "-858993461", expecting: "-18446744074568545077") + 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: "8589934592", expecting: "0") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "7730941133", expecting: "0") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "6871947674", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "6012954215", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "5153960756", expecting: "0") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "4294967297", expecting: "0") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "3435973838", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "340282366920938463481821351505477763074") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "2576980379", expecting: "2") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "340282366920938463481821351505477763072") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "858993461", expecting: "0") + self.andTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993461", expecting: "340282366920938463481821351505477763074") + 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "-340282366920938463481821351514067697664") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "7730941133", expecting: "7730941132") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "-340282366920938463481821351513208704206") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "6871947674", expecting: "6871947674") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "-340282366920938463481821351512349710746") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "6012954215", expecting: "6012954214") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "-340282366920938463481821351511490717288") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "5153960756", expecting: "5153960756") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "-340282366920938463481821351510631723828") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "4294967297", expecting: "4294967296") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "-340282366920938463481821351509772730370") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "3435973838", expecting: "3435973838") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "-340282366920938463481821351508913736910") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "2576980379", expecting: "2576980378") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "-340282366920938463481821351508054743452") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986920", expecting: "1717986920") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-340282366920938463481821351507195749992") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993461", expecting: "858993460") + self.andTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993461", expecting: "-340282366920938463481821351506336756534") + 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: "8589934592", expecting: "0") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "5") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "6277101735386680764516354157049543343010657915253861384193") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "0") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "5") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "6277101735386680764516354157049543343010657915253861384193") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "4") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "6277101735386680764516354157049543343010657915253861384196") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "4") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "1") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "6277101735386680764516354157049543343010657915253861384197") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "6277101735386680764516354157049543343010657915253861384192") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "5") + self.andTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "6277101735386680764516354157049543343010657915253861384193") + 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "-6277101735386680764516354157049543343010657915262451318784") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "7730941129") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "-6277101735386680764516354157049543343010657915261592325325") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "6871947674") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "-6277101735386680764516354157049543343010657915260733331870") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "6012954211") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "-6277101735386680764516354157049543343010657915259874338407") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "5153960752") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "-6277101735386680764516354157049543343010657915259015344952") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "-6277101735386680764516354157049543343010657915258156351493") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "3435973834") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "-6277101735386680764516354157049543343010657915257297358030") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "2576980379") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "-6277101735386680764516354157049543343010657915256438364575") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "1717986920") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-6277101735386680764516354157049543343010657915255579371112") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "858993457") + self.andTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "-6277101735386680764516354157049543343010657915254720377653") + 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: "8589934592", expecting: "0") + self.andTest(lhs: "18446744073709551623", rhs: "-8589934592", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551623", rhs: "7730941133", expecting: "5") + self.andTest(lhs: "18446744073709551623", rhs: "-7730941133", expecting: "18446744073709551619") + self.andTest(lhs: "18446744073709551623", rhs: "6871947674", expecting: "2") + self.andTest(lhs: "18446744073709551623", rhs: "-6871947674", expecting: "18446744073709551622") + self.andTest(lhs: "18446744073709551623", rhs: "6012954215", expecting: "7") + self.andTest(lhs: "18446744073709551623", rhs: "-6012954215", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551623", rhs: "5153960756", expecting: "4") + self.andTest(lhs: "18446744073709551623", rhs: "-5153960756", expecting: "18446744073709551620") + self.andTest(lhs: "18446744073709551623", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "18446744073709551623", rhs: "-4294967297", expecting: "18446744073709551623") + self.andTest(lhs: "18446744073709551623", rhs: "3435973838", expecting: "6") + self.andTest(lhs: "18446744073709551623", rhs: "-3435973838", expecting: "18446744073709551618") + self.andTest(lhs: "18446744073709551623", rhs: "2576980379", expecting: "3") + self.andTest(lhs: "18446744073709551623", rhs: "-2576980379", expecting: "18446744073709551621") + self.andTest(lhs: "18446744073709551623", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551623", rhs: "858993461", expecting: "5") + self.andTest(lhs: "18446744073709551623", rhs: "-858993461", expecting: "18446744073709551619") + 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-18446744073709551623", rhs: "-8589934592", expecting: "-18446744082299486208") + self.andTest(lhs: "-18446744073709551623", rhs: "7730941133", expecting: "7730941129") + self.andTest(lhs: "-18446744073709551623", rhs: "-7730941133", expecting: "-18446744081440492751") + self.andTest(lhs: "-18446744073709551623", rhs: "6871947674", expecting: "6871947672") + self.andTest(lhs: "-18446744073709551623", rhs: "-6871947674", expecting: "-18446744080581499296") + self.andTest(lhs: "-18446744073709551623", rhs: "6012954215", expecting: "6012954209") + self.andTest(lhs: "-18446744073709551623", rhs: "-6012954215", expecting: "-18446744079722505831") + self.andTest(lhs: "-18446744073709551623", rhs: "5153960756", expecting: "5153960752") + self.andTest(lhs: "-18446744073709551623", rhs: "-5153960756", expecting: "-18446744078863512376") + self.andTest(lhs: "-18446744073709551623", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "-18446744073709551623", rhs: "-4294967297", expecting: "-18446744078004518919") + self.andTest(lhs: "-18446744073709551623", rhs: "3435973838", expecting: "3435973832") + self.andTest(lhs: "-18446744073709551623", rhs: "-3435973838", expecting: "-18446744077145525456") + self.andTest(lhs: "-18446744073709551623", rhs: "2576980379", expecting: "2576980377") + self.andTest(lhs: "-18446744073709551623", rhs: "-2576980379", expecting: "-18446744076286531999") + self.andTest(lhs: "-18446744073709551623", rhs: "1717986920", expecting: "1717986920") + self.andTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "-18446744075427538536") + self.andTest(lhs: "-18446744073709551623", rhs: "858993461", expecting: "858993457") + self.andTest(lhs: "-18446744073709551623", rhs: "-858993461", expecting: "-18446744074568545079") + 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: "8589934592", expecting: "0") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "7730941133", expecting: "0") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "6871947674", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "6012954215", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "5153960756", expecting: "0") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "4294967297", expecting: "0") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "3435973838", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "340282366920938463592501815947735072770") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "2576980379", expecting: "2") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "340282366920938463592501815947735072768") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "858993461", expecting: "0") + self.andTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993461", expecting: "340282366920938463592501815947735072770") + 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "-340282366920938463592501815956325007360") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "7730941133", expecting: "7730941132") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "-340282366920938463592501815955466013902") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "6871947674", expecting: "6871947674") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "-340282366920938463592501815954607020442") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "6012954215", expecting: "6012954214") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "-340282366920938463592501815953748026984") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "5153960756", expecting: "5153960756") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "-340282366920938463592501815952889033524") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "4294967297", expecting: "4294967296") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "-340282366920938463592501815952030040066") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "3435973838", expecting: "3435973838") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "-340282366920938463592501815951171046606") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "2576980379", expecting: "2576980378") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "-340282366920938463592501815950312053148") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986920", expecting: "1717986920") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-340282366920938463592501815949453059688") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993461", expecting: "858993460") + self.andTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993461", expecting: "-340282366920938463592501815948594066230") + 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: "8589934592", expecting: "0") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "6277101735386680766558048358575174123680225095402213343232") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "9") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "6277101735386680766558048358575174123680225095402213343235") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "10") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "6277101735386680766558048358575174123680225095402213343234") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "3") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "6277101735386680766558048358575174123680225095402213343241") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "0") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "6277101735386680766558048358575174123680225095402213343240") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "6277101735386680766558048358575174123680225095402213343243") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "10") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "6277101735386680766558048358575174123680225095402213343234") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "11") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "6277101735386680766558048358575174123680225095402213343233") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "8") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "6277101735386680766558048358575174123680225095402213343240") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "1") + self.andTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "6277101735386680766558048358575174123680225095402213343243") + 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "-6277101735386680766558048358575174123680225095410803277824") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "7730941125") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "-6277101735386680766558048358575174123680225095409944284367") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "6871947664") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "-6277101735386680766558048358575174123680225095409085290908") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "6012954213") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "-6277101735386680766558048358575174123680225095408226297455") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "5153960756") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "-6277101735386680766558048358575174123680225095407367303996") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "-6277101735386680766558048358575174123680225095406508310539") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "3435973828") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "-6277101735386680766558048358575174123680225095405649317072") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "2576980369") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "-6277101735386680766558048358575174123680225095404790323611") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "1717986912") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-6277101735386680766558048358575174123680225095403931330160") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "858993461") + self.andTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "-6277101735386680766558048358575174123680225095403072336703") + 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: "8589934592", expecting: "0") + self.andTest(lhs: "18446744073709551629", rhs: "-8589934592", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551629", rhs: "7730941133", expecting: "13") + self.andTest(lhs: "18446744073709551629", rhs: "-7730941133", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551629", rhs: "6871947674", expecting: "8") + self.andTest(lhs: "18446744073709551629", rhs: "-6871947674", expecting: "18446744073709551620") + self.andTest(lhs: "18446744073709551629", rhs: "6012954215", expecting: "5") + self.andTest(lhs: "18446744073709551629", rhs: "-6012954215", expecting: "18446744073709551625") + self.andTest(lhs: "18446744073709551629", rhs: "5153960756", expecting: "4") + self.andTest(lhs: "18446744073709551629", rhs: "-5153960756", expecting: "18446744073709551628") + self.andTest(lhs: "18446744073709551629", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "18446744073709551629", rhs: "-4294967297", expecting: "18446744073709551629") + self.andTest(lhs: "18446744073709551629", rhs: "3435973838", expecting: "12") + self.andTest(lhs: "18446744073709551629", rhs: "-3435973838", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551629", rhs: "2576980379", expecting: "9") + self.andTest(lhs: "18446744073709551629", rhs: "-2576980379", expecting: "18446744073709551621") + self.andTest(lhs: "18446744073709551629", rhs: "1717986920", expecting: "8") + self.andTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "18446744073709551624") + self.andTest(lhs: "18446744073709551629", rhs: "858993461", expecting: "5") + self.andTest(lhs: "18446744073709551629", rhs: "-858993461", expecting: "18446744073709551625") + 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-18446744073709551629", rhs: "-8589934592", expecting: "-18446744082299486208") + self.andTest(lhs: "-18446744073709551629", rhs: "7730941133", expecting: "7730941121") + self.andTest(lhs: "-18446744073709551629", rhs: "-7730941133", expecting: "-18446744081440492749") + self.andTest(lhs: "-18446744073709551629", rhs: "6871947674", expecting: "6871947666") + self.andTest(lhs: "-18446744073709551629", rhs: "-6871947674", expecting: "-18446744080581499294") + self.andTest(lhs: "-18446744073709551629", rhs: "6012954215", expecting: "6012954211") + self.andTest(lhs: "-18446744073709551629", rhs: "-6012954215", expecting: "-18446744079722505839") + self.andTest(lhs: "-18446744073709551629", rhs: "5153960756", expecting: "5153960752") + self.andTest(lhs: "-18446744073709551629", rhs: "-5153960756", expecting: "-18446744078863512384") + self.andTest(lhs: "-18446744073709551629", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "-18446744073709551629", rhs: "-4294967297", expecting: "-18446744078004518925") + self.andTest(lhs: "-18446744073709551629", rhs: "3435973838", expecting: "3435973826") + self.andTest(lhs: "-18446744073709551629", rhs: "-3435973838", expecting: "-18446744077145525454") + self.andTest(lhs: "-18446744073709551629", rhs: "2576980379", expecting: "2576980371") + self.andTest(lhs: "-18446744073709551629", rhs: "-2576980379", expecting: "-18446744076286531999") + self.andTest(lhs: "-18446744073709551629", rhs: "1717986920", expecting: "1717986912") + self.andTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "-18446744075427538544") + self.andTest(lhs: "-18446744073709551629", rhs: "858993461", expecting: "858993457") + self.andTest(lhs: "-18446744073709551629", rhs: "-858993461", expecting: "-18446744074568545085") + 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: "8589934592", expecting: "0") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "7730941133", expecting: "0") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "6871947674", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "6012954215", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "5153960756", expecting: "0") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "4294967297", expecting: "0") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "3435973838", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "340282366920938463703182280389992382466") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "2576980379", expecting: "2") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "340282366920938463703182280389992382464") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "858993461", expecting: "0") + self.andTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993461", expecting: "340282366920938463703182280389992382466") + 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "-340282366920938463703182280398582317056") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "7730941133", expecting: "7730941132") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "-340282366920938463703182280397723323598") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "6871947674", expecting: "6871947674") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "-340282366920938463703182280396864330138") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "6012954215", expecting: "6012954214") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "-340282366920938463703182280396005336680") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "5153960756", expecting: "5153960756") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "-340282366920938463703182280395146343220") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "4294967297", expecting: "4294967296") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "-340282366920938463703182280394287349762") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "3435973838", expecting: "3435973838") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "-340282366920938463703182280393428356302") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "2576980379", expecting: "2576980378") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "-340282366920938463703182280392569362844") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986920", expecting: "1717986920") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-340282366920938463703182280391710369384") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993461", expecting: "858993460") + self.andTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993461", expecting: "-340282366920938463703182280390851375926") + 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: "8589934592", expecting: "0") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "1") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "16") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "1") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "16") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "6277101735386680768599742560100804904349792275550565302272") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "6277101735386680768599742560100804904349792275550565302289") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "0") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "17") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "6277101735386680768599742560100804904349792275550565302273") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "6277101735386680768599742560100804904349792275550565302288") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "17") + self.andTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "6277101735386680768599742560100804904349792275550565302273") + 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "-6277101735386680768599742560100804904349792275559155236864") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "7730941133") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "-6277101735386680768599742560100804904349792275558296243421") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "6871947658") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "-6277101735386680768599742560100804904349792275557437249946") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "6012954215") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "-6277101735386680768599742560100804904349792275556578256503") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "5153960740") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "-6277101735386680768599742560100804904349792275555719263028") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "-6277101735386680768599742560100804904349792275554860269585") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "3435973838") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "-6277101735386680768599742560100804904349792275554001276126") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "2576980363") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "-6277101735386680768599742560100804904349792275553142282651") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "1717986920") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-6277101735386680768599742560100804904349792275552283289208") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "858993445") + self.andTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "-6277101735386680768599742560100804904349792275551424295733") + 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: "8589934592", expecting: "0") + self.andTest(lhs: "18446744073709551635", rhs: "-8589934592", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551635", rhs: "7730941133", expecting: "1") + self.andTest(lhs: "18446744073709551635", rhs: "-7730941133", expecting: "18446744073709551635") + self.andTest(lhs: "18446744073709551635", rhs: "6871947674", expecting: "18") + self.andTest(lhs: "18446744073709551635", rhs: "-6871947674", expecting: "18446744073709551618") + self.andTest(lhs: "18446744073709551635", rhs: "6012954215", expecting: "3") + self.andTest(lhs: "18446744073709551635", rhs: "-6012954215", expecting: "18446744073709551633") + self.andTest(lhs: "18446744073709551635", rhs: "5153960756", expecting: "16") + self.andTest(lhs: "18446744073709551635", rhs: "-5153960756", expecting: "18446744073709551616") + self.andTest(lhs: "18446744073709551635", rhs: "4294967297", expecting: "1") + self.andTest(lhs: "18446744073709551635", rhs: "-4294967297", expecting: "18446744073709551635") + self.andTest(lhs: "18446744073709551635", rhs: "3435973838", expecting: "2") + self.andTest(lhs: "18446744073709551635", rhs: "-3435973838", expecting: "18446744073709551634") + self.andTest(lhs: "18446744073709551635", rhs: "2576980379", expecting: "19") + self.andTest(lhs: "18446744073709551635", rhs: "-2576980379", expecting: "18446744073709551617") + self.andTest(lhs: "18446744073709551635", rhs: "1717986920", expecting: "0") + self.andTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "18446744073709551632") + self.andTest(lhs: "18446744073709551635", rhs: "858993461", expecting: "17") + self.andTest(lhs: "18446744073709551635", rhs: "-858993461", expecting: "18446744073709551619") + 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: "8589934592", expecting: "8589934592") + self.andTest(lhs: "-18446744073709551635", rhs: "-8589934592", expecting: "-18446744082299486208") + self.andTest(lhs: "-18446744073709551635", rhs: "7730941133", expecting: "7730941133") + self.andTest(lhs: "-18446744073709551635", rhs: "-7730941133", expecting: "-18446744081440492767") + self.andTest(lhs: "-18446744073709551635", rhs: "6871947674", expecting: "6871947656") + self.andTest(lhs: "-18446744073709551635", rhs: "-6871947674", expecting: "-18446744080581499292") + self.andTest(lhs: "-18446744073709551635", rhs: "6012954215", expecting: "6012954213") + self.andTest(lhs: "-18446744073709551635", rhs: "-6012954215", expecting: "-18446744079722505847") + self.andTest(lhs: "-18446744073709551635", rhs: "5153960756", expecting: "5153960740") + self.andTest(lhs: "-18446744073709551635", rhs: "-5153960756", expecting: "-18446744078863512372") + self.andTest(lhs: "-18446744073709551635", rhs: "4294967297", expecting: "4294967297") + self.andTest(lhs: "-18446744073709551635", rhs: "-4294967297", expecting: "-18446744078004518931") + self.andTest(lhs: "-18446744073709551635", rhs: "3435973838", expecting: "3435973836") + self.andTest(lhs: "-18446744073709551635", rhs: "-3435973838", expecting: "-18446744077145525472") + self.andTest(lhs: "-18446744073709551635", rhs: "2576980379", expecting: "2576980361") + self.andTest(lhs: "-18446744073709551635", rhs: "-2576980379", expecting: "-18446744076286531995") + self.andTest(lhs: "-18446744073709551635", rhs: "1717986920", expecting: "1717986920") + self.andTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "-18446744075427538552") + self.andTest(lhs: "-18446744073709551635", rhs: "858993461", expecting: "858993445") + self.andTest(lhs: "-18446744073709551635", rhs: "-858993461", expecting: "-18446744074568545079") + } + + func test_and_big_big() { + 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_int_int() { + 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: "8589934592", expecting: "8589934592") + self.orTest(lhs: "0", rhs: "-8589934592", expecting: "-8589934592") + self.orTest(lhs: "0", rhs: "7730941133", expecting: "7730941133") + self.orTest(lhs: "0", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "0", rhs: "6871947674", expecting: "6871947674") + self.orTest(lhs: "0", rhs: "-6871947674", expecting: "-6871947674") + self.orTest(lhs: "0", rhs: "6012954215", expecting: "6012954215") + self.orTest(lhs: "0", rhs: "-6012954215", expecting: "-6012954215") + self.orTest(lhs: "0", rhs: "5153960756", expecting: "5153960756") + self.orTest(lhs: "0", rhs: "-5153960756", expecting: "-5153960756") + self.orTest(lhs: "0", rhs: "4294967297", expecting: "4294967297") + self.orTest(lhs: "0", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "0", rhs: "3435973838", expecting: "3435973838") + self.orTest(lhs: "0", rhs: "-3435973838", expecting: "-3435973838") + self.orTest(lhs: "0", rhs: "2576980379", expecting: "2576980379") + self.orTest(lhs: "0", rhs: "-2576980379", expecting: "-2576980379") + self.orTest(lhs: "0", rhs: "1717986920", expecting: "1717986920") + self.orTest(lhs: "0", rhs: "-1717986920", expecting: "-1717986920") + self.orTest(lhs: "0", rhs: "858993461", expecting: "858993461") + self.orTest(lhs: "0", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "8589934593") + self.orTest(lhs: "1", rhs: "-8589934592", expecting: "-8589934591") + self.orTest(lhs: "1", rhs: "7730941133", expecting: "7730941133") + self.orTest(lhs: "1", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "1", rhs: "6871947674", expecting: "6871947675") + self.orTest(lhs: "1", rhs: "-6871947674", expecting: "-6871947673") + self.orTest(lhs: "1", rhs: "6012954215", expecting: "6012954215") + self.orTest(lhs: "1", rhs: "-6012954215", expecting: "-6012954215") + self.orTest(lhs: "1", rhs: "5153960756", expecting: "5153960757") + self.orTest(lhs: "1", rhs: "-5153960756", expecting: "-5153960755") + self.orTest(lhs: "1", rhs: "4294967297", expecting: "4294967297") + self.orTest(lhs: "1", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "1", rhs: "3435973838", expecting: "3435973839") + self.orTest(lhs: "1", rhs: "-3435973838", expecting: "-3435973837") + self.orTest(lhs: "1", rhs: "2576980379", expecting: "2576980379") + self.orTest(lhs: "1", rhs: "-2576980379", expecting: "-2576980379") + self.orTest(lhs: "1", rhs: "1717986920", expecting: "1717986921") + self.orTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986919") + self.orTest(lhs: "1", rhs: "858993461", expecting: "858993461") + self.orTest(lhs: "1", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-8589934592", expecting: "-1") + self.orTest(lhs: "-1", rhs: "7730941133", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-7730941133", expecting: "-1") + self.orTest(lhs: "-1", rhs: "6871947674", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-6871947674", expecting: "-1") + self.orTest(lhs: "-1", rhs: "6012954215", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-6012954215", expecting: "-1") + self.orTest(lhs: "-1", rhs: "5153960756", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-5153960756", expecting: "-1") + self.orTest(lhs: "-1", rhs: "4294967297", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-1", rhs: "3435973838", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-3435973838", expecting: "-1") + self.orTest(lhs: "-1", rhs: "2576980379", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-2576980379", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1717986920", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "-1", rhs: "858993461", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-858993461", expecting: "-1") + self.orTest(lhs: "8589934592", rhs: "0", expecting: "8589934592") + self.orTest(lhs: "8589934592", rhs: "1", expecting: "8589934593") + self.orTest(lhs: "8589934592", rhs: "-1", expecting: "-1") + self.orTest(lhs: "8589934592", rhs: "8589934592", expecting: "8589934592") + self.orTest(lhs: "8589934592", rhs: "-8589934592", expecting: "-8589934592") + self.orTest(lhs: "8589934592", rhs: "7730941133", expecting: "16320875725") + self.orTest(lhs: "8589934592", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "8589934592", rhs: "6871947674", expecting: "15461882266") + self.orTest(lhs: "8589934592", rhs: "-6871947674", expecting: "-6871947674") + self.orTest(lhs: "8589934592", rhs: "6012954215", expecting: "14602888807") + self.orTest(lhs: "8589934592", rhs: "-6012954215", expecting: "-6012954215") + self.orTest(lhs: "8589934592", rhs: "5153960756", expecting: "13743895348") + self.orTest(lhs: "8589934592", rhs: "-5153960756", expecting: "-5153960756") + self.orTest(lhs: "8589934592", rhs: "4294967297", expecting: "12884901889") + self.orTest(lhs: "8589934592", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "8589934592", rhs: "3435973838", expecting: "12025908430") + self.orTest(lhs: "8589934592", rhs: "-3435973838", expecting: "-3435973838") + self.orTest(lhs: "8589934592", rhs: "2576980379", expecting: "11166914971") + self.orTest(lhs: "8589934592", rhs: "-2576980379", expecting: "-2576980379") + self.orTest(lhs: "8589934592", rhs: "1717986920", expecting: "10307921512") + self.orTest(lhs: "8589934592", rhs: "-1717986920", expecting: "-1717986920") + self.orTest(lhs: "8589934592", rhs: "858993461", expecting: "9448928053") + self.orTest(lhs: "8589934592", rhs: "-858993461", expecting: "-858993461") + self.orTest(lhs: "-8589934592", rhs: "0", expecting: "-8589934592") + self.orTest(lhs: "-8589934592", rhs: "1", expecting: "-8589934591") + self.orTest(lhs: "-8589934592", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-8589934592", rhs: "8589934592", expecting: "-8589934592") + self.orTest(lhs: "-8589934592", rhs: "-8589934592", expecting: "-8589934592") + self.orTest(lhs: "-8589934592", rhs: "7730941133", expecting: "-858993459") + self.orTest(lhs: "-8589934592", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "-8589934592", rhs: "6871947674", expecting: "-1717986918") + self.orTest(lhs: "-8589934592", rhs: "-6871947674", expecting: "-6871947674") + self.orTest(lhs: "-8589934592", rhs: "6012954215", expecting: "-2576980377") + self.orTest(lhs: "-8589934592", rhs: "-6012954215", expecting: "-6012954215") + self.orTest(lhs: "-8589934592", rhs: "5153960756", expecting: "-3435973836") + self.orTest(lhs: "-8589934592", rhs: "-5153960756", expecting: "-5153960756") + self.orTest(lhs: "-8589934592", rhs: "4294967297", expecting: "-4294967295") + self.orTest(lhs: "-8589934592", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "-8589934592", rhs: "3435973838", expecting: "-5153960754") + self.orTest(lhs: "-8589934592", rhs: "-3435973838", expecting: "-3435973838") + self.orTest(lhs: "-8589934592", rhs: "2576980379", expecting: "-6012954213") + self.orTest(lhs: "-8589934592", rhs: "-2576980379", expecting: "-2576980379") + self.orTest(lhs: "-8589934592", rhs: "1717986920", expecting: "-6871947672") + self.orTest(lhs: "-8589934592", rhs: "-1717986920", expecting: "-1717986920") + self.orTest(lhs: "-8589934592", rhs: "858993461", expecting: "-7730941131") + self.orTest(lhs: "-8589934592", rhs: "-858993461", expecting: "-858993461") + self.orTest(lhs: "7730941133", rhs: "0", expecting: "7730941133") + self.orTest(lhs: "7730941133", rhs: "1", expecting: "7730941133") + self.orTest(lhs: "7730941133", rhs: "-1", expecting: "-1") + self.orTest(lhs: "7730941133", rhs: "8589934592", expecting: "16320875725") + self.orTest(lhs: "7730941133", rhs: "-8589934592", expecting: "-858993459") + self.orTest(lhs: "7730941133", rhs: "7730941133", expecting: "7730941133") + self.orTest(lhs: "7730941133", rhs: "-7730941133", expecting: "-1") + self.orTest(lhs: "7730941133", rhs: "6871947674", expecting: "8017272287") + self.orTest(lhs: "7730941133", rhs: "-6871947674", expecting: "-286331153") + self.orTest(lhs: "7730941133", rhs: "6012954215", expecting: "8303603439") + self.orTest(lhs: "7730941133", rhs: "-6012954215", expecting: "-572662307") + self.orTest(lhs: "7730941133", rhs: "5153960756", expecting: "8589934589") + self.orTest(lhs: "7730941133", rhs: "-5153960756", expecting: "-858993459") + self.orTest(lhs: "7730941133", rhs: "4294967297", expecting: "7730941133") + self.orTest(lhs: "7730941133", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "7730941133", rhs: "3435973838", expecting: "7730941135") + self.orTest(lhs: "7730941133", rhs: "-3435973838", expecting: "-1") + self.orTest(lhs: "7730941133", rhs: "2576980379", expecting: "8017272287") + self.orTest(lhs: "7730941133", rhs: "-2576980379", expecting: "-286331155") + self.orTest(lhs: "7730941133", rhs: "1717986920", expecting: "8303603437") + self.orTest(lhs: "7730941133", rhs: "-1717986920", expecting: "-572662307") + self.orTest(lhs: "7730941133", rhs: "858993461", expecting: "8589934589") + self.orTest(lhs: "7730941133", rhs: "-858993461", expecting: "-858993457") + self.orTest(lhs: "-7730941133", rhs: "0", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "1", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-7730941133", rhs: "8589934592", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "-8589934592", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "7730941133", expecting: "-1") + self.orTest(lhs: "-7730941133", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "6871947674", expecting: "-1145324613") + self.orTest(lhs: "-7730941133", rhs: "-6871947674", expecting: "-6585616521") + self.orTest(lhs: "-7730941133", rhs: "6012954215", expecting: "-2290649225") + self.orTest(lhs: "-7730941133", rhs: "-6012954215", expecting: "-5440291909") + self.orTest(lhs: "-7730941133", rhs: "5153960756", expecting: "-3435973833") + self.orTest(lhs: "-7730941133", rhs: "-5153960756", expecting: "-4294967297") + self.orTest(lhs: "-7730941133", rhs: "4294967297", expecting: "-3435973837") + self.orTest(lhs: "-7730941133", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "-7730941133", rhs: "3435973838", expecting: "-4294967297") + self.orTest(lhs: "-7730941133", rhs: "-3435973838", expecting: "-3435973837") + self.orTest(lhs: "-7730941133", rhs: "2576980379", expecting: "-5440291909") + self.orTest(lhs: "-7730941133", rhs: "-2576980379", expecting: "-2290649225") + self.orTest(lhs: "-7730941133", rhs: "1717986920", expecting: "-6585616517") + self.orTest(lhs: "-7730941133", rhs: "-1717986920", expecting: "-1145324613") + self.orTest(lhs: "-7730941133", rhs: "858993461", expecting: "-7730941129") + self.orTest(lhs: "-7730941133", rhs: "-858993461", expecting: "-5") + self.orTest(lhs: "6871947674", rhs: "0", expecting: "6871947674") + self.orTest(lhs: "6871947674", rhs: "1", expecting: "6871947675") + self.orTest(lhs: "6871947674", rhs: "-1", expecting: "-1") + self.orTest(lhs: "6871947674", rhs: "8589934592", expecting: "15461882266") + self.orTest(lhs: "6871947674", rhs: "-8589934592", expecting: "-1717986918") + self.orTest(lhs: "6871947674", rhs: "7730941133", expecting: "8017272287") + self.orTest(lhs: "6871947674", rhs: "-7730941133", expecting: "-1145324613") + self.orTest(lhs: "6871947674", rhs: "6871947674", expecting: "6871947674") + self.orTest(lhs: "6871947674", rhs: "-6871947674", expecting: "-2") + self.orTest(lhs: "6871947674", rhs: "6012954215", expecting: "8589934591") + self.orTest(lhs: "6871947674", rhs: "-6012954215", expecting: "-1717986917") + self.orTest(lhs: "6871947674", rhs: "5153960756", expecting: "7444609982") + self.orTest(lhs: "6871947674", rhs: "-5153960756", expecting: "-572662306") + self.orTest(lhs: "6871947674", rhs: "4294967297", expecting: "6871947675") + self.orTest(lhs: "6871947674", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "6871947674", rhs: "3435973838", expecting: "8017272286") + self.orTest(lhs: "6871947674", rhs: "-3435973838", expecting: "-1145324614") + self.orTest(lhs: "6871947674", rhs: "2576980379", expecting: "6871947675") + self.orTest(lhs: "6871947674", rhs: "-2576980379", expecting: "-1") + self.orTest(lhs: "6871947674", rhs: "1717986920", expecting: "8589934586") + self.orTest(lhs: "6871947674", rhs: "-1717986920", expecting: "-1717986918") + self.orTest(lhs: "6871947674", rhs: "858993461", expecting: "7444609983") + self.orTest(lhs: "6871947674", rhs: "-858993461", expecting: "-572662309") + self.orTest(lhs: "-6871947674", rhs: "0", expecting: "-6871947674") + self.orTest(lhs: "-6871947674", rhs: "1", expecting: "-6871947673") + self.orTest(lhs: "-6871947674", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-6871947674", rhs: "8589934592", expecting: "-6871947674") + self.orTest(lhs: "-6871947674", rhs: "-8589934592", expecting: "-6871947674") + self.orTest(lhs: "-6871947674", rhs: "7730941133", expecting: "-286331153") + self.orTest(lhs: "-6871947674", rhs: "-7730941133", expecting: "-6585616521") + self.orTest(lhs: "-6871947674", rhs: "6871947674", expecting: "-2") + self.orTest(lhs: "-6871947674", rhs: "-6871947674", expecting: "-6871947674") + self.orTest(lhs: "-6871947674", rhs: "6012954215", expecting: "-2576980377") + self.orTest(lhs: "-6871947674", rhs: "-6012954215", expecting: "-4294967297") + self.orTest(lhs: "-6871947674", rhs: "5153960756", expecting: "-2290649226") + self.orTest(lhs: "-6871947674", rhs: "-5153960756", expecting: "-4581298450") + self.orTest(lhs: "-6871947674", rhs: "4294967297", expecting: "-2576980377") + self.orTest(lhs: "-6871947674", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "-6871947674", rhs: "3435973838", expecting: "-4581298450") + self.orTest(lhs: "-6871947674", rhs: "-3435973838", expecting: "-2290649226") + self.orTest(lhs: "-6871947674", rhs: "2576980379", expecting: "-4294967297") + self.orTest(lhs: "-6871947674", rhs: "-2576980379", expecting: "-2576980377") + self.orTest(lhs: "-6871947674", rhs: "1717986920", expecting: "-6871947666") + self.orTest(lhs: "-6871947674", rhs: "-1717986920", expecting: "-2") + self.orTest(lhs: "-6871947674", rhs: "858993461", expecting: "-6585616521") + self.orTest(lhs: "-6871947674", rhs: "-858993461", expecting: "-286331153") + self.orTest(lhs: "6012954215", rhs: "0", expecting: "6012954215") + self.orTest(lhs: "6012954215", rhs: "1", expecting: "6012954215") + self.orTest(lhs: "6012954215", rhs: "-1", expecting: "-1") + self.orTest(lhs: "6012954215", rhs: "8589934592", expecting: "14602888807") + self.orTest(lhs: "6012954215", rhs: "-8589934592", expecting: "-2576980377") + self.orTest(lhs: "6012954215", rhs: "7730941133", expecting: "8303603439") + self.orTest(lhs: "6012954215", rhs: "-7730941133", expecting: "-2290649225") + self.orTest(lhs: "6012954215", rhs: "6871947674", expecting: "8589934591") + self.orTest(lhs: "6012954215", rhs: "-6871947674", expecting: "-2576980377") + self.orTest(lhs: "6012954215", rhs: "6012954215", expecting: "6012954215") + self.orTest(lhs: "6012954215", rhs: "-6012954215", expecting: "-1") + self.orTest(lhs: "6012954215", rhs: "5153960756", expecting: "6299285367") + self.orTest(lhs: "6012954215", rhs: "-5153960756", expecting: "-286331153") + self.orTest(lhs: "6012954215", rhs: "4294967297", expecting: "6012954215") + self.orTest(lhs: "6012954215", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "6012954215", rhs: "3435973838", expecting: "8303603439") + self.orTest(lhs: "6012954215", rhs: "-3435973838", expecting: "-2290649225") + self.orTest(lhs: "6012954215", rhs: "2576980379", expecting: "8589934591") + self.orTest(lhs: "6012954215", rhs: "-2576980379", expecting: "-2576980377") + self.orTest(lhs: "6012954215", rhs: "1717986920", expecting: "6012954223") + self.orTest(lhs: "6012954215", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "6012954215", rhs: "858993461", expecting: "6299285367") + self.orTest(lhs: "6012954215", rhs: "-858993461", expecting: "-286331153") + self.orTest(lhs: "-6012954215", rhs: "0", expecting: "-6012954215") + self.orTest(lhs: "-6012954215", rhs: "1", expecting: "-6012954215") + self.orTest(lhs: "-6012954215", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-6012954215", rhs: "8589934592", expecting: "-6012954215") + self.orTest(lhs: "-6012954215", rhs: "-8589934592", expecting: "-6012954215") + self.orTest(lhs: "-6012954215", rhs: "7730941133", expecting: "-572662307") + self.orTest(lhs: "-6012954215", rhs: "-7730941133", expecting: "-5440291909") + self.orTest(lhs: "-6012954215", rhs: "6871947674", expecting: "-1717986917") + self.orTest(lhs: "-6012954215", rhs: "-6871947674", expecting: "-4294967297") + self.orTest(lhs: "-6012954215", rhs: "6012954215", expecting: "-1") + self.orTest(lhs: "-6012954215", rhs: "-6012954215", expecting: "-6012954215") + self.orTest(lhs: "-6012954215", rhs: "5153960756", expecting: "-1145324611") + self.orTest(lhs: "-6012954215", rhs: "-5153960756", expecting: "-4867629603") + self.orTest(lhs: "-6012954215", rhs: "4294967297", expecting: "-1717986919") + self.orTest(lhs: "-6012954215", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "-6012954215", rhs: "3435973838", expecting: "-4867629601") + self.orTest(lhs: "-6012954215", rhs: "-3435973838", expecting: "-1145324613") + self.orTest(lhs: "-6012954215", rhs: "2576980379", expecting: "-6012954213") + self.orTest(lhs: "-6012954215", rhs: "-2576980379", expecting: "-3") + self.orTest(lhs: "-6012954215", rhs: "1717986920", expecting: "-4294967303") + self.orTest(lhs: "-6012954215", rhs: "-1717986920", expecting: "-1717986919") + self.orTest(lhs: "-6012954215", rhs: "858993461", expecting: "-5440291907") + self.orTest(lhs: "-6012954215", rhs: "-858993461", expecting: "-572662309") + self.orTest(lhs: "5153960756", rhs: "0", expecting: "5153960756") + self.orTest(lhs: "5153960756", rhs: "1", expecting: "5153960757") + self.orTest(lhs: "5153960756", rhs: "-1", expecting: "-1") + self.orTest(lhs: "5153960756", rhs: "8589934592", expecting: "13743895348") + self.orTest(lhs: "5153960756", rhs: "-8589934592", expecting: "-3435973836") + self.orTest(lhs: "5153960756", rhs: "7730941133", expecting: "8589934589") + self.orTest(lhs: "5153960756", rhs: "-7730941133", expecting: "-3435973833") + self.orTest(lhs: "5153960756", rhs: "6871947674", expecting: "7444609982") + self.orTest(lhs: "5153960756", rhs: "-6871947674", expecting: "-2290649226") + self.orTest(lhs: "5153960756", rhs: "6012954215", expecting: "6299285367") + self.orTest(lhs: "5153960756", rhs: "-6012954215", expecting: "-1145324611") + self.orTest(lhs: "5153960756", rhs: "5153960756", expecting: "5153960756") + self.orTest(lhs: "5153960756", rhs: "-5153960756", expecting: "-4") + self.orTest(lhs: "5153960756", rhs: "4294967297", expecting: "5153960757") + self.orTest(lhs: "5153960756", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "5153960756", rhs: "3435973838", expecting: "8589934590") + self.orTest(lhs: "5153960756", rhs: "-3435973838", expecting: "-3435973834") + self.orTest(lhs: "5153960756", rhs: "2576980379", expecting: "7444609983") + self.orTest(lhs: "5153960756", rhs: "-2576980379", expecting: "-2290649227") + self.orTest(lhs: "5153960756", rhs: "1717986920", expecting: "6299285372") + self.orTest(lhs: "5153960756", rhs: "-1717986920", expecting: "-1145324612") + self.orTest(lhs: "5153960756", rhs: "858993461", expecting: "5153960757") + self.orTest(lhs: "5153960756", rhs: "-858993461", expecting: "-1") + self.orTest(lhs: "-5153960756", rhs: "0", expecting: "-5153960756") + self.orTest(lhs: "-5153960756", rhs: "1", expecting: "-5153960755") + self.orTest(lhs: "-5153960756", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-5153960756", rhs: "8589934592", expecting: "-5153960756") + self.orTest(lhs: "-5153960756", rhs: "-8589934592", expecting: "-5153960756") + self.orTest(lhs: "-5153960756", rhs: "7730941133", expecting: "-858993459") + self.orTest(lhs: "-5153960756", rhs: "-7730941133", expecting: "-4294967297") + self.orTest(lhs: "-5153960756", rhs: "6871947674", expecting: "-572662306") + self.orTest(lhs: "-5153960756", rhs: "-6871947674", expecting: "-4581298450") + self.orTest(lhs: "-5153960756", rhs: "6012954215", expecting: "-286331153") + self.orTest(lhs: "-5153960756", rhs: "-6012954215", expecting: "-4867629603") + self.orTest(lhs: "-5153960756", rhs: "5153960756", expecting: "-4") + self.orTest(lhs: "-5153960756", rhs: "-5153960756", expecting: "-5153960756") + self.orTest(lhs: "-5153960756", rhs: "4294967297", expecting: "-858993459") + self.orTest(lhs: "-5153960756", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "-5153960756", rhs: "3435973838", expecting: "-5153960754") + self.orTest(lhs: "-5153960756", rhs: "-3435973838", expecting: "-2") + self.orTest(lhs: "-5153960756", rhs: "2576980379", expecting: "-4867629601") + self.orTest(lhs: "-5153960756", rhs: "-2576980379", expecting: "-286331155") + self.orTest(lhs: "-5153960756", rhs: "1717986920", expecting: "-4581298452") + self.orTest(lhs: "-5153960756", rhs: "-1717986920", expecting: "-572662308") + self.orTest(lhs: "-5153960756", rhs: "858993461", expecting: "-4294967299") + self.orTest(lhs: "-5153960756", rhs: "-858993461", expecting: "-858993457") + self.orTest(lhs: "4294967297", rhs: "0", expecting: "4294967297") + self.orTest(lhs: "4294967297", rhs: "1", expecting: "4294967297") + self.orTest(lhs: "4294967297", rhs: "-1", expecting: "-1") + self.orTest(lhs: "4294967297", rhs: "8589934592", expecting: "12884901889") + self.orTest(lhs: "4294967297", rhs: "-8589934592", expecting: "-4294967295") + self.orTest(lhs: "4294967297", rhs: "7730941133", expecting: "7730941133") + self.orTest(lhs: "4294967297", rhs: "-7730941133", expecting: "-3435973837") + self.orTest(lhs: "4294967297", rhs: "6871947674", expecting: "6871947675") + self.orTest(lhs: "4294967297", rhs: "-6871947674", expecting: "-2576980377") + self.orTest(lhs: "4294967297", rhs: "6012954215", expecting: "6012954215") + self.orTest(lhs: "4294967297", rhs: "-6012954215", expecting: "-1717986919") + self.orTest(lhs: "4294967297", rhs: "5153960756", expecting: "5153960757") + self.orTest(lhs: "4294967297", rhs: "-5153960756", expecting: "-858993459") + self.orTest(lhs: "4294967297", rhs: "4294967297", expecting: "4294967297") + self.orTest(lhs: "4294967297", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "4294967297", rhs: "3435973838", expecting: "7730941135") + self.orTest(lhs: "4294967297", rhs: "-3435973838", expecting: "-3435973837") + self.orTest(lhs: "4294967297", rhs: "2576980379", expecting: "6871947675") + self.orTest(lhs: "4294967297", rhs: "-2576980379", expecting: "-2576980379") + self.orTest(lhs: "4294967297", rhs: "1717986920", expecting: "6012954217") + self.orTest(lhs: "4294967297", rhs: "-1717986920", expecting: "-1717986919") + self.orTest(lhs: "4294967297", rhs: "858993461", expecting: "5153960757") + self.orTest(lhs: "4294967297", rhs: "-858993461", expecting: "-858993461") + self.orTest(lhs: "-4294967297", rhs: "0", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "1", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "8589934592", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-8589934592", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "7730941133", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "-7730941133", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "6871947674", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "-6871947674", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "6012954215", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "-6012954215", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "5153960756", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "-5153960756", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "4294967297", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "3435973838", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-3435973838", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "2576980379", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-2576980379", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "1717986920", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "858993461", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-858993461", expecting: "-1") + self.orTest(lhs: "3435973838", rhs: "0", expecting: "3435973838") + self.orTest(lhs: "3435973838", rhs: "1", expecting: "3435973839") + self.orTest(lhs: "3435973838", rhs: "-1", expecting: "-1") + self.orTest(lhs: "3435973838", rhs: "8589934592", expecting: "12025908430") + self.orTest(lhs: "3435973838", rhs: "-8589934592", expecting: "-5153960754") + self.orTest(lhs: "3435973838", rhs: "7730941133", expecting: "7730941135") + self.orTest(lhs: "3435973838", rhs: "-7730941133", expecting: "-4294967297") + self.orTest(lhs: "3435973838", rhs: "6871947674", expecting: "8017272286") + self.orTest(lhs: "3435973838", rhs: "-6871947674", expecting: "-4581298450") + self.orTest(lhs: "3435973838", rhs: "6012954215", expecting: "8303603439") + self.orTest(lhs: "3435973838", rhs: "-6012954215", expecting: "-4867629601") + self.orTest(lhs: "3435973838", rhs: "5153960756", expecting: "8589934590") + self.orTest(lhs: "3435973838", rhs: "-5153960756", expecting: "-5153960754") + self.orTest(lhs: "3435973838", rhs: "4294967297", expecting: "7730941135") + self.orTest(lhs: "3435973838", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "3435973838", rhs: "3435973838", expecting: "3435973838") + self.orTest(lhs: "3435973838", rhs: "-3435973838", expecting: "-2") + self.orTest(lhs: "3435973838", rhs: "2576980379", expecting: "3722304991") + self.orTest(lhs: "3435973838", rhs: "-2576980379", expecting: "-286331153") + self.orTest(lhs: "3435973838", rhs: "1717986920", expecting: "4008636142") + self.orTest(lhs: "3435973838", rhs: "-1717986920", expecting: "-572662306") + self.orTest(lhs: "3435973838", rhs: "858993461", expecting: "4294967295") + self.orTest(lhs: "3435973838", rhs: "-858993461", expecting: "-858993457") + self.orTest(lhs: "-3435973838", rhs: "0", expecting: "-3435973838") + self.orTest(lhs: "-3435973838", rhs: "1", expecting: "-3435973837") + self.orTest(lhs: "-3435973838", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-3435973838", rhs: "8589934592", expecting: "-3435973838") + self.orTest(lhs: "-3435973838", rhs: "-8589934592", expecting: "-3435973838") + self.orTest(lhs: "-3435973838", rhs: "7730941133", expecting: "-1") + self.orTest(lhs: "-3435973838", rhs: "-7730941133", expecting: "-3435973837") + self.orTest(lhs: "-3435973838", rhs: "6871947674", expecting: "-1145324614") + self.orTest(lhs: "-3435973838", rhs: "-6871947674", expecting: "-2290649226") + self.orTest(lhs: "-3435973838", rhs: "6012954215", expecting: "-2290649225") + self.orTest(lhs: "-3435973838", rhs: "-6012954215", expecting: "-1145324613") + self.orTest(lhs: "-3435973838", rhs: "5153960756", expecting: "-3435973834") + self.orTest(lhs: "-3435973838", rhs: "-5153960756", expecting: "-2") + self.orTest(lhs: "-3435973838", rhs: "4294967297", expecting: "-3435973837") + self.orTest(lhs: "-3435973838", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-3435973838", rhs: "3435973838", expecting: "-2") + self.orTest(lhs: "-3435973838", rhs: "-3435973838", expecting: "-3435973838") + self.orTest(lhs: "-3435973838", rhs: "2576980379", expecting: "-1145324613") + self.orTest(lhs: "-3435973838", rhs: "-2576980379", expecting: "-2290649225") + self.orTest(lhs: "-3435973838", rhs: "1717986920", expecting: "-2290649222") + self.orTest(lhs: "-3435973838", rhs: "-1717986920", expecting: "-1145324614") + self.orTest(lhs: "-3435973838", rhs: "858993461", expecting: "-3435973833") + self.orTest(lhs: "-3435973838", rhs: "-858993461", expecting: "-5") + self.orTest(lhs: "2576980379", rhs: "0", expecting: "2576980379") + self.orTest(lhs: "2576980379", rhs: "1", expecting: "2576980379") + self.orTest(lhs: "2576980379", rhs: "-1", expecting: "-1") + self.orTest(lhs: "2576980379", rhs: "8589934592", expecting: "11166914971") + self.orTest(lhs: "2576980379", rhs: "-8589934592", expecting: "-6012954213") + self.orTest(lhs: "2576980379", rhs: "7730941133", expecting: "8017272287") + self.orTest(lhs: "2576980379", rhs: "-7730941133", expecting: "-5440291909") + self.orTest(lhs: "2576980379", rhs: "6871947674", expecting: "6871947675") + self.orTest(lhs: "2576980379", rhs: "-6871947674", expecting: "-4294967297") + self.orTest(lhs: "2576980379", rhs: "6012954215", expecting: "8589934591") + self.orTest(lhs: "2576980379", rhs: "-6012954215", expecting: "-6012954213") + self.orTest(lhs: "2576980379", rhs: "5153960756", expecting: "7444609983") + self.orTest(lhs: "2576980379", rhs: "-5153960756", expecting: "-4867629601") + self.orTest(lhs: "2576980379", rhs: "4294967297", expecting: "6871947675") + self.orTest(lhs: "2576980379", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "2576980379", rhs: "3435973838", expecting: "3722304991") + self.orTest(lhs: "2576980379", rhs: "-3435973838", expecting: "-1145324613") + self.orTest(lhs: "2576980379", rhs: "2576980379", expecting: "2576980379") + self.orTest(lhs: "2576980379", rhs: "-2576980379", expecting: "-1") + self.orTest(lhs: "2576980379", rhs: "1717986920", expecting: "4294967291") + self.orTest(lhs: "2576980379", rhs: "-1717986920", expecting: "-1717986917") + self.orTest(lhs: "2576980379", rhs: "858993461", expecting: "3149642687") + self.orTest(lhs: "2576980379", rhs: "-858993461", expecting: "-572662309") + self.orTest(lhs: "-2576980379", rhs: "0", expecting: "-2576980379") + self.orTest(lhs: "-2576980379", rhs: "1", expecting: "-2576980379") + self.orTest(lhs: "-2576980379", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-2576980379", rhs: "8589934592", expecting: "-2576980379") + self.orTest(lhs: "-2576980379", rhs: "-8589934592", expecting: "-2576980379") + self.orTest(lhs: "-2576980379", rhs: "7730941133", expecting: "-286331155") + self.orTest(lhs: "-2576980379", rhs: "-7730941133", expecting: "-2290649225") + self.orTest(lhs: "-2576980379", rhs: "6871947674", expecting: "-1") + self.orTest(lhs: "-2576980379", rhs: "-6871947674", expecting: "-2576980377") + self.orTest(lhs: "-2576980379", rhs: "6012954215", expecting: "-2576980377") + self.orTest(lhs: "-2576980379", rhs: "-6012954215", expecting: "-3") + self.orTest(lhs: "-2576980379", rhs: "5153960756", expecting: "-2290649227") + self.orTest(lhs: "-2576980379", rhs: "-5153960756", expecting: "-286331155") + self.orTest(lhs: "-2576980379", rhs: "4294967297", expecting: "-2576980379") + self.orTest(lhs: "-2576980379", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-2576980379", rhs: "3435973838", expecting: "-286331153") + self.orTest(lhs: "-2576980379", rhs: "-3435973838", expecting: "-2290649225") + self.orTest(lhs: "-2576980379", rhs: "2576980379", expecting: "-1") + self.orTest(lhs: "-2576980379", rhs: "-2576980379", expecting: "-2576980379") + self.orTest(lhs: "-2576980379", rhs: "1717986920", expecting: "-2576980371") + self.orTest(lhs: "-2576980379", rhs: "-1717986920", expecting: "-3") + self.orTest(lhs: "-2576980379", rhs: "858993461", expecting: "-2290649227") + self.orTest(lhs: "-2576980379", rhs: "-858993461", expecting: "-286331153") + self.orTest(lhs: "1717986920", rhs: "0", expecting: "1717986920") + self.orTest(lhs: "1717986920", rhs: "1", expecting: "1717986921") + self.orTest(lhs: "1717986920", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1717986920", rhs: "8589934592", expecting: "10307921512") + self.orTest(lhs: "1717986920", rhs: "-8589934592", expecting: "-6871947672") + self.orTest(lhs: "1717986920", rhs: "7730941133", expecting: "8303603437") + self.orTest(lhs: "1717986920", rhs: "-7730941133", expecting: "-6585616517") + self.orTest(lhs: "1717986920", rhs: "6871947674", expecting: "8589934586") + self.orTest(lhs: "1717986920", rhs: "-6871947674", expecting: "-6871947666") + self.orTest(lhs: "1717986920", rhs: "6012954215", expecting: "6012954223") + self.orTest(lhs: "1717986920", rhs: "-6012954215", expecting: "-4294967303") + self.orTest(lhs: "1717986920", rhs: "5153960756", expecting: "6299285372") + self.orTest(lhs: "1717986920", rhs: "-5153960756", expecting: "-4581298452") + self.orTest(lhs: "1717986920", rhs: "4294967297", expecting: "6012954217") + self.orTest(lhs: "1717986920", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "1717986920", rhs: "3435973838", expecting: "4008636142") + self.orTest(lhs: "1717986920", rhs: "-3435973838", expecting: "-2290649222") + self.orTest(lhs: "1717986920", rhs: "2576980379", expecting: "4294967291") + self.orTest(lhs: "1717986920", rhs: "-2576980379", expecting: "-2576980371") + self.orTest(lhs: "1717986920", rhs: "1717986920", expecting: "1717986920") + self.orTest(lhs: "1717986920", rhs: "-1717986920", expecting: "-8") + self.orTest(lhs: "1717986920", rhs: "858993461", expecting: "2004318077") + self.orTest(lhs: "1717986920", rhs: "-858993461", expecting: "-286331157") + 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: "8589934592", expecting: "-1717986920") + self.orTest(lhs: "-1717986920", rhs: "-8589934592", expecting: "-1717986920") + self.orTest(lhs: "-1717986920", rhs: "7730941133", expecting: "-572662307") + self.orTest(lhs: "-1717986920", rhs: "-7730941133", expecting: "-1145324613") + self.orTest(lhs: "-1717986920", rhs: "6871947674", expecting: "-1717986918") + self.orTest(lhs: "-1717986920", rhs: "-6871947674", expecting: "-2") + self.orTest(lhs: "-1717986920", rhs: "6012954215", expecting: "-1") + self.orTest(lhs: "-1717986920", rhs: "-6012954215", expecting: "-1717986919") + self.orTest(lhs: "-1717986920", rhs: "5153960756", expecting: "-1145324612") + self.orTest(lhs: "-1717986920", rhs: "-5153960756", expecting: "-572662308") + self.orTest(lhs: "-1717986920", rhs: "4294967297", expecting: "-1717986919") + self.orTest(lhs: "-1717986920", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-1717986920", rhs: "3435973838", expecting: "-572662306") + self.orTest(lhs: "-1717986920", rhs: "-3435973838", expecting: "-1145324614") + self.orTest(lhs: "-1717986920", rhs: "2576980379", expecting: "-1717986917") + self.orTest(lhs: "-1717986920", rhs: "-2576980379", expecting: "-3") + self.orTest(lhs: "-1717986920", rhs: "1717986920", expecting: "-8") + self.orTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "-1717986920") + self.orTest(lhs: "-1717986920", rhs: "858993461", expecting: "-1145324611") + self.orTest(lhs: "-1717986920", rhs: "-858993461", expecting: "-572662309") + self.orTest(lhs: "858993461", rhs: "0", expecting: "858993461") + self.orTest(lhs: "858993461", rhs: "1", expecting: "858993461") + self.orTest(lhs: "858993461", rhs: "-1", expecting: "-1") + self.orTest(lhs: "858993461", rhs: "8589934592", expecting: "9448928053") + self.orTest(lhs: "858993461", rhs: "-8589934592", expecting: "-7730941131") + self.orTest(lhs: "858993461", rhs: "7730941133", expecting: "8589934589") + self.orTest(lhs: "858993461", rhs: "-7730941133", expecting: "-7730941129") + self.orTest(lhs: "858993461", rhs: "6871947674", expecting: "7444609983") + self.orTest(lhs: "858993461", rhs: "-6871947674", expecting: "-6585616521") + self.orTest(lhs: "858993461", rhs: "6012954215", expecting: "6299285367") + self.orTest(lhs: "858993461", rhs: "-6012954215", expecting: "-5440291907") + self.orTest(lhs: "858993461", rhs: "5153960756", expecting: "5153960757") + self.orTest(lhs: "858993461", rhs: "-5153960756", expecting: "-4294967299") + self.orTest(lhs: "858993461", rhs: "4294967297", expecting: "5153960757") + self.orTest(lhs: "858993461", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "858993461", rhs: "3435973838", expecting: "4294967295") + self.orTest(lhs: "858993461", rhs: "-3435973838", expecting: "-3435973833") + self.orTest(lhs: "858993461", rhs: "2576980379", expecting: "3149642687") + self.orTest(lhs: "858993461", rhs: "-2576980379", expecting: "-2290649227") + self.orTest(lhs: "858993461", rhs: "1717986920", expecting: "2004318077") + self.orTest(lhs: "858993461", rhs: "-1717986920", expecting: "-1145324611") + self.orTest(lhs: "858993461", rhs: "858993461", expecting: "858993461") + self.orTest(lhs: "858993461", rhs: "-858993461", expecting: "-1") + self.orTest(lhs: "-858993461", rhs: "0", expecting: "-858993461") + self.orTest(lhs: "-858993461", rhs: "1", expecting: "-858993461") + self.orTest(lhs: "-858993461", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-858993461", rhs: "8589934592", expecting: "-858993461") + self.orTest(lhs: "-858993461", rhs: "-8589934592", expecting: "-858993461") + self.orTest(lhs: "-858993461", rhs: "7730941133", expecting: "-858993457") + self.orTest(lhs: "-858993461", rhs: "-7730941133", expecting: "-5") + self.orTest(lhs: "-858993461", rhs: "6871947674", expecting: "-572662309") + self.orTest(lhs: "-858993461", rhs: "-6871947674", expecting: "-286331153") + self.orTest(lhs: "-858993461", rhs: "6012954215", expecting: "-286331153") + self.orTest(lhs: "-858993461", rhs: "-6012954215", expecting: "-572662309") + self.orTest(lhs: "-858993461", rhs: "5153960756", expecting: "-1") + self.orTest(lhs: "-858993461", rhs: "-5153960756", expecting: "-858993457") + self.orTest(lhs: "-858993461", rhs: "4294967297", expecting: "-858993461") + self.orTest(lhs: "-858993461", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-858993461", rhs: "3435973838", expecting: "-858993457") + self.orTest(lhs: "-858993461", rhs: "-3435973838", expecting: "-5") + self.orTest(lhs: "-858993461", rhs: "2576980379", expecting: "-572662309") + self.orTest(lhs: "-858993461", rhs: "-2576980379", expecting: "-286331153") + self.orTest(lhs: "-858993461", rhs: "1717986920", expecting: "-286331157") + self.orTest(lhs: "-858993461", rhs: "-1717986920", expecting: "-572662309") + self.orTest(lhs: "-858993461", rhs: "858993461", expecting: "-1") + self.orTest(lhs: "-858993461", rhs: "-858993461", expecting: "-858993461") + } + + func test_or_int_big() { + 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: "8589934592", rhs: "0", expecting: "8589934592") + self.orTest(lhs: "8589934592", rhs: "1", expecting: "8589934593") + self.orTest(lhs: "8589934592", rhs: "-1", expecting: "-1") + self.orTest(lhs: "8589934592", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "8589934592", rhs: "-18446744073709551615", expecting: "-18446744065119617023") + self.orTest(lhs: "8589934592", rhs: "18446744073709551617", expecting: "18446744082299486209") + self.orTest(lhs: "8589934592", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "8589934592", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351514067697666") + self.orTest(lhs: "8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915262451318789") + self.orTest(lhs: "8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "8589934592", rhs: "18446744073709551623", expecting: "18446744082299486215") + self.orTest(lhs: "8589934592", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.orTest(lhs: "8589934592", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815956325007362") + self.orTest(lhs: "8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095410803277835") + self.orTest(lhs: "8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "8589934592", rhs: "18446744073709551629", expecting: "18446744082299486221") + self.orTest(lhs: "8589934592", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.orTest(lhs: "8589934592", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280398582317058") + self.orTest(lhs: "8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275559155236881") + self.orTest(lhs: "8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "8589934592", rhs: "18446744073709551635", expecting: "18446744082299486227") + self.orTest(lhs: "8589934592", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.orTest(lhs: "-8589934592", rhs: "0", expecting: "-8589934592") + self.orTest(lhs: "-8589934592", rhs: "1", expecting: "-8589934591") + self.orTest(lhs: "-8589934592", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-8589934592", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-8589934592", rhs: "-18446744073709551615", expecting: "-8589934591") + self.orTest(lhs: "-8589934592", rhs: "18446744073709551617", expecting: "-8589934591") + self.orTest(lhs: "-8589934592", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-8589934592", rhs: "340282366920938463481821351505477763074", expecting: "-8589934590") + self.orTest(lhs: "-8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-8589934587") + self.orTest(lhs: "-8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5") + self.orTest(lhs: "-8589934592", rhs: "18446744073709551623", expecting: "-8589934585") + self.orTest(lhs: "-8589934592", rhs: "-18446744073709551623", expecting: "-7") + self.orTest(lhs: "-8589934592", rhs: "340282366920938463592501815947735072770", expecting: "-8589934590") + self.orTest(lhs: "-8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-8589934581") + self.orTest(lhs: "-8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-11") + self.orTest(lhs: "-8589934592", rhs: "18446744073709551629", expecting: "-8589934579") + self.orTest(lhs: "-8589934592", rhs: "-18446744073709551629", expecting: "-13") + self.orTest(lhs: "-8589934592", rhs: "340282366920938463703182280389992382466", expecting: "-8589934590") + self.orTest(lhs: "-8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-8589934575") + self.orTest(lhs: "-8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-17") + self.orTest(lhs: "-8589934592", rhs: "18446744073709551635", expecting: "-8589934573") + self.orTest(lhs: "-8589934592", rhs: "-18446744073709551635", expecting: "-19") + self.orTest(lhs: "7730941133", rhs: "0", expecting: "7730941133") + self.orTest(lhs: "7730941133", rhs: "1", expecting: "7730941133") + self.orTest(lhs: "7730941133", rhs: "-1", expecting: "-1") + self.orTest(lhs: "7730941133", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "7730941133", rhs: "-18446744073709551615", expecting: "-18446744065978610483") + self.orTest(lhs: "7730941133", rhs: "18446744073709551617", expecting: "18446744081440492749") + self.orTest(lhs: "7730941133", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "7730941133", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351513208704207") + self.orTest(lhs: "7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915261592325325") + self.orTest(lhs: "7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "7730941133", rhs: "18446744073709551623", expecting: "18446744081440492751") + self.orTest(lhs: "7730941133", rhs: "-18446744073709551623", expecting: "-18446744073709551619") + self.orTest(lhs: "7730941133", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815955466013903") + self.orTest(lhs: "7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095409944284367") + self.orTest(lhs: "7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343235") + self.orTest(lhs: "7730941133", rhs: "18446744073709551629", expecting: "18446744081440492749") + self.orTest(lhs: "7730941133", rhs: "-18446744073709551629", expecting: "-18446744073709551617") + self.orTest(lhs: "7730941133", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280397723323599") + self.orTest(lhs: "7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275558296243421") + self.orTest(lhs: "7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "7730941133", rhs: "18446744073709551635", expecting: "18446744081440492767") + self.orTest(lhs: "7730941133", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.orTest(lhs: "-7730941133", rhs: "0", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "1", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-7730941133", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-7730941133", rhs: "-18446744073709551615", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "18446744073709551617", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-7730941133", rhs: "340282366920938463481821351505477763074", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "-7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-7730941129") + self.orTest(lhs: "-7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5") + self.orTest(lhs: "-7730941133", rhs: "18446744073709551623", expecting: "-7730941129") + self.orTest(lhs: "-7730941133", rhs: "-18446744073709551623", expecting: "-5") + self.orTest(lhs: "-7730941133", rhs: "340282366920938463592501815947735072770", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "-1") + self.orTest(lhs: "-7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-7730941125") + self.orTest(lhs: "-7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-9") + self.orTest(lhs: "-7730941133", rhs: "18446744073709551629", expecting: "-7730941121") + self.orTest(lhs: "-7730941133", rhs: "-18446744073709551629", expecting: "-13") + self.orTest(lhs: "-7730941133", rhs: "340282366920938463703182280389992382466", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "-1") + self.orTest(lhs: "-7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-7730941133", rhs: "18446744073709551635", expecting: "-7730941133") + self.orTest(lhs: "-7730941133", rhs: "-18446744073709551635", expecting: "-1") + self.orTest(lhs: "6871947674", rhs: "0", expecting: "6871947674") + self.orTest(lhs: "6871947674", rhs: "1", expecting: "6871947675") + self.orTest(lhs: "6871947674", rhs: "-1", expecting: "-1") + self.orTest(lhs: "6871947674", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "6871947674", rhs: "-18446744073709551615", expecting: "-18446744066837603941") + self.orTest(lhs: "6871947674", rhs: "18446744073709551617", expecting: "18446744080581499291") + self.orTest(lhs: "6871947674", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "6871947674", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351512349710746") + self.orTest(lhs: "6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915260733331871") + self.orTest(lhs: "6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "6871947674", rhs: "18446744073709551623", expecting: "18446744080581499295") + self.orTest(lhs: "6871947674", rhs: "-18446744073709551623", expecting: "-18446744073709551621") + self.orTest(lhs: "6871947674", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815954607020442") + self.orTest(lhs: "6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095409085290907") + self.orTest(lhs: "6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "6871947674", rhs: "18446744073709551629", expecting: "18446744080581499295") + self.orTest(lhs: "6871947674", rhs: "-18446744073709551629", expecting: "-18446744073709551621") + self.orTest(lhs: "6871947674", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280396864330138") + self.orTest(lhs: "6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275557437249947") + self.orTest(lhs: "6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "6871947674", rhs: "18446744073709551635", expecting: "18446744080581499291") + self.orTest(lhs: "6871947674", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "-6871947674", rhs: "0", expecting: "-6871947674") + self.orTest(lhs: "-6871947674", rhs: "1", expecting: "-6871947673") + self.orTest(lhs: "-6871947674", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-6871947674", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-6871947674", rhs: "-18446744073709551615", expecting: "-6871947673") + self.orTest(lhs: "-6871947674", rhs: "18446744073709551617", expecting: "-6871947673") + self.orTest(lhs: "-6871947674", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-6871947674", rhs: "340282366920938463481821351505477763074", expecting: "-6871947674") + self.orTest(lhs: "-6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6871947673") + self.orTest(lhs: "-6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-6871947674", rhs: "18446744073709551623", expecting: "-6871947673") + self.orTest(lhs: "-6871947674", rhs: "-18446744073709551623", expecting: "-1") + self.orTest(lhs: "-6871947674", rhs: "340282366920938463592501815947735072770", expecting: "-6871947674") + self.orTest(lhs: "-6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6871947665") + self.orTest(lhs: "-6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-9") + self.orTest(lhs: "-6871947674", rhs: "18446744073709551629", expecting: "-6871947665") + self.orTest(lhs: "-6871947674", rhs: "-18446744073709551629", expecting: "-9") + self.orTest(lhs: "-6871947674", rhs: "340282366920938463703182280389992382466", expecting: "-6871947674") + self.orTest(lhs: "-6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6871947657") + self.orTest(lhs: "-6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-17") + self.orTest(lhs: "-6871947674", rhs: "18446744073709551635", expecting: "-6871947657") + self.orTest(lhs: "-6871947674", rhs: "-18446744073709551635", expecting: "-17") + self.orTest(lhs: "6012954215", rhs: "0", expecting: "6012954215") + self.orTest(lhs: "6012954215", rhs: "1", expecting: "6012954215") + self.orTest(lhs: "6012954215", rhs: "-1", expecting: "-1") + self.orTest(lhs: "6012954215", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "6012954215", rhs: "-18446744073709551615", expecting: "-18446744067696597401") + self.orTest(lhs: "6012954215", rhs: "18446744073709551617", expecting: "18446744079722505831") + self.orTest(lhs: "6012954215", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "6012954215", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351511490717287") + self.orTest(lhs: "6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915259874338407") + self.orTest(lhs: "6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "6012954215", rhs: "18446744073709551623", expecting: "18446744079722505831") + self.orTest(lhs: "6012954215", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.orTest(lhs: "6012954215", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815953748026983") + self.orTest(lhs: "6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095408226297455") + self.orTest(lhs: "6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343241") + self.orTest(lhs: "6012954215", rhs: "18446744073709551629", expecting: "18446744079722505839") + self.orTest(lhs: "6012954215", rhs: "-18446744073709551629", expecting: "-18446744073709551625") + self.orTest(lhs: "6012954215", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280396005336679") + self.orTest(lhs: "6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275556578256503") + self.orTest(lhs: "6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "6012954215", rhs: "18446744073709551635", expecting: "18446744079722505847") + self.orTest(lhs: "6012954215", rhs: "-18446744073709551635", expecting: "-18446744073709551633") + self.orTest(lhs: "-6012954215", rhs: "0", expecting: "-6012954215") + self.orTest(lhs: "-6012954215", rhs: "1", expecting: "-6012954215") + self.orTest(lhs: "-6012954215", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-6012954215", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-6012954215", rhs: "-18446744073709551615", expecting: "-6012954215") + self.orTest(lhs: "-6012954215", rhs: "18446744073709551617", expecting: "-6012954215") + self.orTest(lhs: "-6012954215", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-6012954215", rhs: "340282366920938463481821351505477763074", expecting: "-6012954213") + self.orTest(lhs: "-6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "-6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6012954211") + self.orTest(lhs: "-6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5") + self.orTest(lhs: "-6012954215", rhs: "18446744073709551623", expecting: "-6012954209") + self.orTest(lhs: "-6012954215", rhs: "-18446744073709551623", expecting: "-7") + self.orTest(lhs: "-6012954215", rhs: "340282366920938463592501815947735072770", expecting: "-6012954213") + self.orTest(lhs: "-6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "-1") + self.orTest(lhs: "-6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6012954213") + self.orTest(lhs: "-6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-3") + self.orTest(lhs: "-6012954215", rhs: "18446744073709551629", expecting: "-6012954211") + self.orTest(lhs: "-6012954215", rhs: "-18446744073709551629", expecting: "-5") + self.orTest(lhs: "-6012954215", rhs: "340282366920938463703182280389992382466", expecting: "-6012954213") + self.orTest(lhs: "-6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "-1") + self.orTest(lhs: "-6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6012954215") + self.orTest(lhs: "-6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-6012954215", rhs: "18446744073709551635", expecting: "-6012954213") + self.orTest(lhs: "-6012954215", rhs: "-18446744073709551635", expecting: "-3") + self.orTest(lhs: "5153960756", rhs: "0", expecting: "5153960756") + self.orTest(lhs: "5153960756", rhs: "1", expecting: "5153960757") + self.orTest(lhs: "5153960756", rhs: "-1", expecting: "-1") + self.orTest(lhs: "5153960756", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "5153960756", rhs: "-18446744073709551615", expecting: "-18446744068555590859") + self.orTest(lhs: "5153960756", rhs: "18446744073709551617", expecting: "18446744078863512373") + self.orTest(lhs: "5153960756", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "5153960756", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351510631723830") + self.orTest(lhs: "5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915259015344949") + self.orTest(lhs: "5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "5153960756", rhs: "18446744073709551623", expecting: "18446744078863512375") + self.orTest(lhs: "5153960756", rhs: "-18446744073709551623", expecting: "-18446744073709551619") + self.orTest(lhs: "5153960756", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815952889033526") + self.orTest(lhs: "5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095407367303999") + self.orTest(lhs: "5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "5153960756", rhs: "18446744073709551629", expecting: "18446744078863512381") + self.orTest(lhs: "5153960756", rhs: "-18446744073709551629", expecting: "-18446744073709551625") + self.orTest(lhs: "5153960756", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280395146343222") + self.orTest(lhs: "5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275555719263029") + self.orTest(lhs: "5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "5153960756", rhs: "18446744073709551635", expecting: "18446744078863512375") + self.orTest(lhs: "5153960756", rhs: "-18446744073709551635", expecting: "-18446744073709551619") + self.orTest(lhs: "-5153960756", rhs: "0", expecting: "-5153960756") + self.orTest(lhs: "-5153960756", rhs: "1", expecting: "-5153960755") + self.orTest(lhs: "-5153960756", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-5153960756", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-5153960756", rhs: "-18446744073709551615", expecting: "-5153960755") + self.orTest(lhs: "-5153960756", rhs: "18446744073709551617", expecting: "-5153960755") + self.orTest(lhs: "-5153960756", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-5153960756", rhs: "340282366920938463481821351505477763074", expecting: "-5153960754") + self.orTest(lhs: "-5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-5153960755") + self.orTest(lhs: "-5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-5153960756", rhs: "18446744073709551623", expecting: "-5153960753") + self.orTest(lhs: "-5153960756", rhs: "-18446744073709551623", expecting: "-3") + self.orTest(lhs: "-5153960756", rhs: "340282366920938463592501815947735072770", expecting: "-5153960754") + self.orTest(lhs: "-5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-5153960753") + self.orTest(lhs: "-5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-3") + self.orTest(lhs: "-5153960756", rhs: "18446744073709551629", expecting: "-5153960755") + self.orTest(lhs: "-5153960756", rhs: "-18446744073709551629", expecting: "-1") + self.orTest(lhs: "-5153960756", rhs: "340282366920938463703182280389992382466", expecting: "-5153960754") + self.orTest(lhs: "-5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-5153960739") + self.orTest(lhs: "-5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-17") + self.orTest(lhs: "-5153960756", rhs: "18446744073709551635", expecting: "-5153960737") + self.orTest(lhs: "-5153960756", rhs: "-18446744073709551635", expecting: "-19") + self.orTest(lhs: "4294967297", rhs: "0", expecting: "4294967297") + self.orTest(lhs: "4294967297", rhs: "1", expecting: "4294967297") + self.orTest(lhs: "4294967297", rhs: "-1", expecting: "-1") + self.orTest(lhs: "4294967297", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "4294967297", rhs: "-18446744073709551615", expecting: "-18446744069414584319") + self.orTest(lhs: "4294967297", rhs: "18446744073709551617", expecting: "18446744078004518913") + self.orTest(lhs: "4294967297", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "4294967297", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351509772730371") + self.orTest(lhs: "4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915258156351493") + self.orTest(lhs: "4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "4294967297", rhs: "18446744073709551623", expecting: "18446744078004518919") + self.orTest(lhs: "4294967297", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.orTest(lhs: "4294967297", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815952030040067") + self.orTest(lhs: "4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095406508310539") + self.orTest(lhs: "4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "4294967297", rhs: "18446744073709551629", expecting: "18446744078004518925") + self.orTest(lhs: "4294967297", rhs: "-18446744073709551629", expecting: "-18446744073709551629") + self.orTest(lhs: "4294967297", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280394287349763") + self.orTest(lhs: "4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275554860269585") + self.orTest(lhs: "4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "4294967297", rhs: "18446744073709551635", expecting: "18446744078004518931") + self.orTest(lhs: "4294967297", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + self.orTest(lhs: "-4294967297", rhs: "0", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "1", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "-18446744073709551615", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "18446744073709551617", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "340282366920938463481821351505477763074", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "18446744073709551623", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-18446744073709551623", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "340282366920938463592501815947735072770", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "18446744073709551629", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-18446744073709551629", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "340282366920938463703182280389992382466", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-4294967297", rhs: "18446744073709551635", expecting: "-4294967297") + self.orTest(lhs: "-4294967297", rhs: "-18446744073709551635", expecting: "-1") + self.orTest(lhs: "3435973838", rhs: "0", expecting: "3435973838") + self.orTest(lhs: "3435973838", rhs: "1", expecting: "3435973839") + self.orTest(lhs: "3435973838", rhs: "-1", expecting: "-1") + self.orTest(lhs: "3435973838", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "3435973838", rhs: "-18446744073709551615", expecting: "-18446744070273577777") + self.orTest(lhs: "3435973838", rhs: "18446744073709551617", expecting: "18446744077145525455") + self.orTest(lhs: "3435973838", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "3435973838", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351508913736910") + self.orTest(lhs: "3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915257297358031") + self.orTest(lhs: "3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "3435973838", rhs: "18446744073709551623", expecting: "18446744077145525455") + self.orTest(lhs: "3435973838", rhs: "-18446744073709551623", expecting: "-18446744073709551617") + self.orTest(lhs: "3435973838", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815951171046606") + self.orTest(lhs: "3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095405649317071") + self.orTest(lhs: "3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "3435973838", rhs: "18446744073709551629", expecting: "18446744077145525455") + self.orTest(lhs: "3435973838", rhs: "-18446744073709551629", expecting: "-18446744073709551617") + self.orTest(lhs: "3435973838", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280393428356302") + self.orTest(lhs: "3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275554001276127") + self.orTest(lhs: "3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "3435973838", rhs: "18446744073709551635", expecting: "18446744077145525471") + self.orTest(lhs: "3435973838", rhs: "-18446744073709551635", expecting: "-18446744073709551633") + self.orTest(lhs: "-3435973838", rhs: "0", expecting: "-3435973838") + self.orTest(lhs: "-3435973838", rhs: "1", expecting: "-3435973837") + self.orTest(lhs: "-3435973838", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-3435973838", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-3435973838", rhs: "-18446744073709551615", expecting: "-3435973837") + self.orTest(lhs: "-3435973838", rhs: "18446744073709551617", expecting: "-3435973837") + self.orTest(lhs: "-3435973838", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-3435973838", rhs: "340282366920938463481821351505477763074", expecting: "-3435973838") + self.orTest(lhs: "-3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "-2") + self.orTest(lhs: "-3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-3435973833") + self.orTest(lhs: "-3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5") + self.orTest(lhs: "-3435973838", rhs: "18446744073709551623", expecting: "-3435973833") + self.orTest(lhs: "-3435973838", rhs: "-18446744073709551623", expecting: "-5") + self.orTest(lhs: "-3435973838", rhs: "340282366920938463592501815947735072770", expecting: "-3435973838") + self.orTest(lhs: "-3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "-2") + self.orTest(lhs: "-3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-3435973829") + self.orTest(lhs: "-3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-9") + self.orTest(lhs: "-3435973838", rhs: "18446744073709551629", expecting: "-3435973825") + self.orTest(lhs: "-3435973838", rhs: "-18446744073709551629", expecting: "-13") + self.orTest(lhs: "-3435973838", rhs: "340282366920938463703182280389992382466", expecting: "-3435973838") + self.orTest(lhs: "-3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "-2") + self.orTest(lhs: "-3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-3435973837") + self.orTest(lhs: "-3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-1") + self.orTest(lhs: "-3435973838", rhs: "18446744073709551635", expecting: "-3435973837") + self.orTest(lhs: "-3435973838", rhs: "-18446744073709551635", expecting: "-1") + self.orTest(lhs: "2576980379", rhs: "0", expecting: "2576980379") + self.orTest(lhs: "2576980379", rhs: "1", expecting: "2576980379") + self.orTest(lhs: "2576980379", rhs: "-1", expecting: "-1") + self.orTest(lhs: "2576980379", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "2576980379", rhs: "-18446744073709551615", expecting: "-18446744071132571237") + self.orTest(lhs: "2576980379", rhs: "18446744073709551617", expecting: "18446744076286531995") + self.orTest(lhs: "2576980379", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "2576980379", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351508054743451") + self.orTest(lhs: "2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915256438364575") + self.orTest(lhs: "2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "2576980379", rhs: "18446744073709551623", expecting: "18446744076286531999") + self.orTest(lhs: "2576980379", rhs: "-18446744073709551623", expecting: "-18446744073709551621") + self.orTest(lhs: "2576980379", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815950312053147") + self.orTest(lhs: "2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404790323611") + self.orTest(lhs: "2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "2576980379", rhs: "18446744073709551629", expecting: "18446744076286531999") + self.orTest(lhs: "2576980379", rhs: "-18446744073709551629", expecting: "-18446744073709551621") + self.orTest(lhs: "2576980379", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280392569362843") + self.orTest(lhs: "2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275553142282651") + self.orTest(lhs: "2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "2576980379", rhs: "18446744073709551635", expecting: "18446744076286531995") + self.orTest(lhs: "2576980379", rhs: "-18446744073709551635", expecting: "-18446744073709551617") + self.orTest(lhs: "-2576980379", rhs: "0", expecting: "-2576980379") + self.orTest(lhs: "-2576980379", rhs: "1", expecting: "-2576980379") + self.orTest(lhs: "-2576980379", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-2576980379", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-2576980379", rhs: "-18446744073709551615", expecting: "-2576980379") + self.orTest(lhs: "-2576980379", rhs: "18446744073709551617", expecting: "-2576980379") + self.orTest(lhs: "-2576980379", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-2576980379", rhs: "340282366920938463481821351505477763074", expecting: "-2576980377") + self.orTest(lhs: "-2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "-2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-2576980379") + self.orTest(lhs: "-2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-1") + self.orTest(lhs: "-2576980379", rhs: "18446744073709551623", expecting: "-2576980377") + self.orTest(lhs: "-2576980379", rhs: "-18446744073709551623", expecting: "-3") + self.orTest(lhs: "-2576980379", rhs: "340282366920938463592501815947735072770", expecting: "-2576980377") + self.orTest(lhs: "-2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "-1") + self.orTest(lhs: "-2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-2576980369") + self.orTest(lhs: "-2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-11") + self.orTest(lhs: "-2576980379", rhs: "18446744073709551629", expecting: "-2576980371") + self.orTest(lhs: "-2576980379", rhs: "-18446744073709551629", expecting: "-9") + self.orTest(lhs: "-2576980379", rhs: "340282366920938463703182280389992382466", expecting: "-2576980377") + self.orTest(lhs: "-2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "-1") + self.orTest(lhs: "-2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-2576980363") + self.orTest(lhs: "-2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-17") + self.orTest(lhs: "-2576980379", rhs: "18446744073709551635", expecting: "-2576980361") + self.orTest(lhs: "-2576980379", rhs: "-18446744073709551635", expecting: "-19") + self.orTest(lhs: "1717986920", rhs: "0", expecting: "1717986920") + self.orTest(lhs: "1717986920", rhs: "1", expecting: "1717986921") + self.orTest(lhs: "1717986920", rhs: "-1", expecting: "-1") + self.orTest(lhs: "1717986920", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "1717986920", rhs: "-18446744073709551615", expecting: "-18446744071991564695") + self.orTest(lhs: "1717986920", rhs: "18446744073709551617", expecting: "18446744075427538537") + self.orTest(lhs: "1717986920", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "1717986920", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351507195749994") + self.orTest(lhs: "1717986920", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255579371117") + self.orTest(lhs: "1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "1717986920", rhs: "18446744073709551623", expecting: "18446744075427538543") + self.orTest(lhs: "1717986920", rhs: "-18446744073709551623", expecting: "-18446744073709551623") + self.orTest(lhs: "1717986920", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949453059690") + self.orTest(lhs: "1717986920", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403931330155") + self.orTest(lhs: "1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343235") + self.orTest(lhs: "1717986920", rhs: "18446744073709551629", expecting: "18446744075427538541") + self.orTest(lhs: "1717986920", rhs: "-18446744073709551629", expecting: "-18446744073709551621") + self.orTest(lhs: "1717986920", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391710369386") + self.orTest(lhs: "1717986920", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552283289209") + self.orTest(lhs: "1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "1717986920", rhs: "18446744073709551635", expecting: "18446744075427538555") + self.orTest(lhs: "1717986920", rhs: "-18446744073709551635", expecting: "-18446744073709551635") + 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: "858993461", rhs: "0", expecting: "858993461") + self.orTest(lhs: "858993461", rhs: "1", expecting: "858993461") + self.orTest(lhs: "858993461", rhs: "-1", expecting: "-1") + self.orTest(lhs: "858993461", rhs: "18446744073709551615", expecting: "18446744073709551615") + self.orTest(lhs: "858993461", rhs: "-18446744073709551615", expecting: "-18446744072850558155") + self.orTest(lhs: "858993461", rhs: "18446744073709551617", expecting: "18446744074568545077") + self.orTest(lhs: "858993461", rhs: "-18446744073709551617", expecting: "-18446744073709551617") + self.orTest(lhs: "858993461", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506336756535") + self.orTest(lhs: "858993461", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254720377653") + self.orTest(lhs: "858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "858993461", rhs: "18446744073709551623", expecting: "18446744074568545079") + self.orTest(lhs: "858993461", rhs: "-18446744073709551623", expecting: "-18446744073709551619") + self.orTest(lhs: "858993461", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948594066231") + self.orTest(lhs: "858993461", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403072336703") + self.orTest(lhs: "858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "858993461", rhs: "18446744073709551629", expecting: "18446744074568545085") + self.orTest(lhs: "858993461", rhs: "-18446744073709551629", expecting: "-18446744073709551625") + self.orTest(lhs: "858993461", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390851375927") + self.orTest(lhs: "858993461", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551424295733") + self.orTest(lhs: "858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "858993461", rhs: "18446744073709551635", expecting: "18446744074568545079") + self.orTest(lhs: "858993461", rhs: "-18446744073709551635", expecting: "-18446744073709551619") + self.orTest(lhs: "-858993461", rhs: "0", expecting: "-858993461") + self.orTest(lhs: "-858993461", rhs: "1", expecting: "-858993461") + self.orTest(lhs: "-858993461", rhs: "-1", expecting: "-1") + self.orTest(lhs: "-858993461", rhs: "18446744073709551615", expecting: "-1") + self.orTest(lhs: "-858993461", rhs: "-18446744073709551615", expecting: "-858993461") + self.orTest(lhs: "-858993461", rhs: "18446744073709551617", expecting: "-858993461") + self.orTest(lhs: "-858993461", rhs: "-18446744073709551617", expecting: "-1") + self.orTest(lhs: "-858993461", rhs: "340282366920938463481821351505477763074", expecting: "-858993461") + self.orTest(lhs: "-858993461", rhs: "-340282366920938463481821351505477763074", expecting: "-1") + self.orTest(lhs: "-858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-858993457") + self.orTest(lhs: "-858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-5") + self.orTest(lhs: "-858993461", rhs: "18446744073709551623", expecting: "-858993457") + self.orTest(lhs: "-858993461", rhs: "-18446744073709551623", expecting: "-5") + self.orTest(lhs: "-858993461", rhs: "340282366920938463592501815947735072770", expecting: "-858993461") + self.orTest(lhs: "-858993461", rhs: "-340282366920938463592501815947735072770", expecting: "-1") + self.orTest(lhs: "-858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-858993461") + self.orTest(lhs: "-858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-1") + self.orTest(lhs: "-858993461", rhs: "18446744073709551629", expecting: "-858993457") + self.orTest(lhs: "-858993461", rhs: "-18446744073709551629", expecting: "-5") + self.orTest(lhs: "-858993461", rhs: "340282366920938463703182280389992382466", expecting: "-858993461") + self.orTest(lhs: "-858993461", rhs: "-340282366920938463703182280389992382466", expecting: "-1") + self.orTest(lhs: "-858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-858993445") + self.orTest(lhs: "-858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-17") + self.orTest(lhs: "-858993461", rhs: "18446744073709551635", expecting: "-858993445") + self.orTest(lhs: "-858993461", rhs: "-18446744073709551635", expecting: "-17") + } + + func test_or_big_int() { + 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: "8589934592", expecting: "8589934592") + self.orTest(lhs: "0", rhs: "-8589934592", expecting: "-8589934592") + self.orTest(lhs: "0", rhs: "7730941133", expecting: "7730941133") + self.orTest(lhs: "0", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "0", rhs: "6871947674", expecting: "6871947674") + self.orTest(lhs: "0", rhs: "-6871947674", expecting: "-6871947674") + self.orTest(lhs: "0", rhs: "6012954215", expecting: "6012954215") + self.orTest(lhs: "0", rhs: "-6012954215", expecting: "-6012954215") + self.orTest(lhs: "0", rhs: "5153960756", expecting: "5153960756") + self.orTest(lhs: "0", rhs: "-5153960756", expecting: "-5153960756") + self.orTest(lhs: "0", rhs: "4294967297", expecting: "4294967297") + self.orTest(lhs: "0", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "0", rhs: "3435973838", expecting: "3435973838") + self.orTest(lhs: "0", rhs: "-3435973838", expecting: "-3435973838") + self.orTest(lhs: "0", rhs: "2576980379", expecting: "2576980379") + self.orTest(lhs: "0", rhs: "-2576980379", expecting: "-2576980379") + self.orTest(lhs: "0", rhs: "1717986920", expecting: "1717986920") + self.orTest(lhs: "0", rhs: "-1717986920", expecting: "-1717986920") + self.orTest(lhs: "0", rhs: "858993461", expecting: "858993461") + self.orTest(lhs: "0", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "8589934593") + self.orTest(lhs: "1", rhs: "-8589934592", expecting: "-8589934591") + self.orTest(lhs: "1", rhs: "7730941133", expecting: "7730941133") + self.orTest(lhs: "1", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "1", rhs: "6871947674", expecting: "6871947675") + self.orTest(lhs: "1", rhs: "-6871947674", expecting: "-6871947673") + self.orTest(lhs: "1", rhs: "6012954215", expecting: "6012954215") + self.orTest(lhs: "1", rhs: "-6012954215", expecting: "-6012954215") + self.orTest(lhs: "1", rhs: "5153960756", expecting: "5153960757") + self.orTest(lhs: "1", rhs: "-5153960756", expecting: "-5153960755") + self.orTest(lhs: "1", rhs: "4294967297", expecting: "4294967297") + self.orTest(lhs: "1", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "1", rhs: "3435973838", expecting: "3435973839") + self.orTest(lhs: "1", rhs: "-3435973838", expecting: "-3435973837") + self.orTest(lhs: "1", rhs: "2576980379", expecting: "2576980379") + self.orTest(lhs: "1", rhs: "-2576980379", expecting: "-2576980379") + self.orTest(lhs: "1", rhs: "1717986920", expecting: "1717986921") + self.orTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986919") + self.orTest(lhs: "1", rhs: "858993461", expecting: "858993461") + self.orTest(lhs: "1", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-8589934592", expecting: "-1") + self.orTest(lhs: "-1", rhs: "7730941133", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-7730941133", expecting: "-1") + self.orTest(lhs: "-1", rhs: "6871947674", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-6871947674", expecting: "-1") + self.orTest(lhs: "-1", rhs: "6012954215", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-6012954215", expecting: "-1") + self.orTest(lhs: "-1", rhs: "5153960756", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-5153960756", expecting: "-1") + self.orTest(lhs: "-1", rhs: "4294967297", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-1", rhs: "3435973838", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-3435973838", expecting: "-1") + self.orTest(lhs: "-1", rhs: "2576980379", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-2576980379", expecting: "-1") + self.orTest(lhs: "-1", rhs: "1717986920", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "-1", rhs: "858993461", expecting: "-1") + self.orTest(lhs: "-1", rhs: "-858993461", 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: "8589934592", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-8589934592", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "7730941133", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-7730941133", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "6871947674", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-6871947674", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "6012954215", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-6012954215", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "5153960756", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-5153960756", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "4294967297", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "3435973838", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-3435973838", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "2576980379", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-2576980379", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "1717986920", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "18446744073709551615", rhs: "858993461", expecting: "18446744073709551615") + self.orTest(lhs: "18446744073709551615", rhs: "-858993461", 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: "8589934592", expecting: "-18446744065119617023") + self.orTest(lhs: "-18446744073709551615", rhs: "-8589934592", expecting: "-8589934591") + self.orTest(lhs: "-18446744073709551615", rhs: "7730941133", expecting: "-18446744065978610483") + self.orTest(lhs: "-18446744073709551615", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "-18446744073709551615", rhs: "6871947674", expecting: "-18446744066837603941") + self.orTest(lhs: "-18446744073709551615", rhs: "-6871947674", expecting: "-6871947673") + self.orTest(lhs: "-18446744073709551615", rhs: "6012954215", expecting: "-18446744067696597401") + self.orTest(lhs: "-18446744073709551615", rhs: "-6012954215", expecting: "-6012954215") + self.orTest(lhs: "-18446744073709551615", rhs: "5153960756", expecting: "-18446744068555590859") + self.orTest(lhs: "-18446744073709551615", rhs: "-5153960756", expecting: "-5153960755") + self.orTest(lhs: "-18446744073709551615", rhs: "4294967297", expecting: "-18446744069414584319") + self.orTest(lhs: "-18446744073709551615", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "-18446744073709551615", rhs: "3435973838", expecting: "-18446744070273577777") + self.orTest(lhs: "-18446744073709551615", rhs: "-3435973838", expecting: "-3435973837") + self.orTest(lhs: "-18446744073709551615", rhs: "2576980379", expecting: "-18446744071132571237") + self.orTest(lhs: "-18446744073709551615", rhs: "-2576980379", expecting: "-2576980379") + self.orTest(lhs: "-18446744073709551615", rhs: "1717986920", expecting: "-18446744071991564695") + self.orTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "-1717986919") + self.orTest(lhs: "-18446744073709551615", rhs: "858993461", expecting: "-18446744072850558155") + self.orTest(lhs: "-18446744073709551615", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "18446744082299486209") + self.orTest(lhs: "18446744073709551617", rhs: "-8589934592", expecting: "-8589934591") + self.orTest(lhs: "18446744073709551617", rhs: "7730941133", expecting: "18446744081440492749") + self.orTest(lhs: "18446744073709551617", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "18446744073709551617", rhs: "6871947674", expecting: "18446744080581499291") + self.orTest(lhs: "18446744073709551617", rhs: "-6871947674", expecting: "-6871947673") + self.orTest(lhs: "18446744073709551617", rhs: "6012954215", expecting: "18446744079722505831") + self.orTest(lhs: "18446744073709551617", rhs: "-6012954215", expecting: "-6012954215") + self.orTest(lhs: "18446744073709551617", rhs: "5153960756", expecting: "18446744078863512373") + self.orTest(lhs: "18446744073709551617", rhs: "-5153960756", expecting: "-5153960755") + self.orTest(lhs: "18446744073709551617", rhs: "4294967297", expecting: "18446744078004518913") + self.orTest(lhs: "18446744073709551617", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "18446744073709551617", rhs: "3435973838", expecting: "18446744077145525455") + self.orTest(lhs: "18446744073709551617", rhs: "-3435973838", expecting: "-3435973837") + self.orTest(lhs: "18446744073709551617", rhs: "2576980379", expecting: "18446744076286531995") + self.orTest(lhs: "18446744073709551617", rhs: "-2576980379", expecting: "-2576980379") + self.orTest(lhs: "18446744073709551617", rhs: "1717986920", expecting: "18446744075427538537") + self.orTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "-1717986919") + self.orTest(lhs: "18446744073709551617", rhs: "858993461", expecting: "18446744074568545077") + self.orTest(lhs: "18446744073709551617", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-8589934592", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "7730941133", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-7730941133", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "6871947674", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-6871947674", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "6012954215", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-6012954215", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "5153960756", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-5153960756", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "4294967297", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "3435973838", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-3435973838", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "2576980379", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-2576980379", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "1717986920", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "-18446744073709551617", rhs: "858993461", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551617", rhs: "-858993461", 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: "8589934592", expecting: "340282366920938463481821351514067697666") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "-8589934590") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "7730941133", expecting: "340282366920938463481821351513208704207") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "6871947674", expecting: "340282366920938463481821351512349710746") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "-6871947674") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "6012954215", expecting: "340282366920938463481821351511490717287") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "-6012954213") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "5153960756", expecting: "340282366920938463481821351510631723830") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "-5153960754") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "4294967297", expecting: "340282366920938463481821351509772730371") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "3435973838", expecting: "340282366920938463481821351508913736910") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "-3435973838") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "2576980379", expecting: "340282366920938463481821351508054743451") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "-2576980377") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986920", expecting: "340282366920938463481821351507195749994") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-1717986918") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "858993461", expecting: "340282366920938463481821351506336756535") + self.orTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "7730941133", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "-1") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "6871947674", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "6012954215", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "-1") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "5153960756", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "4294967297", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "3435973838", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "2576980379", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "-1") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986920", expecting: "-340282366920938463481821351505477763074") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-2") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993461", expecting: "-340282366920938463481821351505477763073") + self.orTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993461", expecting: "-1") + 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: "8589934592", expecting: "6277101735386680764516354157049543343010657915262451318789") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "-8589934587") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "6277101735386680764516354157049543343010657915261592325325") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "-7730941129") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "6277101735386680764516354157049543343010657915260733331871") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "-6871947673") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "6277101735386680764516354157049543343010657915259874338407") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "-6012954211") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "6277101735386680764516354157049543343010657915259015344949") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "-5153960755") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "6277101735386680764516354157049543343010657915258156351493") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "6277101735386680764516354157049543343010657915257297358031") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "-3435973833") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "6277101735386680764516354157049543343010657915256438364575") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "-2576980379") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "6277101735386680764516354157049543343010657915255579371117") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-1717986915") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "6277101735386680764516354157049543343010657915254720377653") + self.orTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "-858993457") + 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: "8589934592", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "-5") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "-5") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "-1") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "-5") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "-1") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "-5") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "-1") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "-6277101735386680764516354157049543343010657915253861384197") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-5") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "-6277101735386680764516354157049543343010657915253861384193") + self.orTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "-5") + 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: "8589934592", expecting: "18446744082299486215") + self.orTest(lhs: "18446744073709551623", rhs: "-8589934592", expecting: "-8589934585") + self.orTest(lhs: "18446744073709551623", rhs: "7730941133", expecting: "18446744081440492751") + self.orTest(lhs: "18446744073709551623", rhs: "-7730941133", expecting: "-7730941129") + self.orTest(lhs: "18446744073709551623", rhs: "6871947674", expecting: "18446744080581499295") + self.orTest(lhs: "18446744073709551623", rhs: "-6871947674", expecting: "-6871947673") + self.orTest(lhs: "18446744073709551623", rhs: "6012954215", expecting: "18446744079722505831") + self.orTest(lhs: "18446744073709551623", rhs: "-6012954215", expecting: "-6012954209") + self.orTest(lhs: "18446744073709551623", rhs: "5153960756", expecting: "18446744078863512375") + self.orTest(lhs: "18446744073709551623", rhs: "-5153960756", expecting: "-5153960753") + self.orTest(lhs: "18446744073709551623", rhs: "4294967297", expecting: "18446744078004518919") + self.orTest(lhs: "18446744073709551623", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "18446744073709551623", rhs: "3435973838", expecting: "18446744077145525455") + self.orTest(lhs: "18446744073709551623", rhs: "-3435973838", expecting: "-3435973833") + self.orTest(lhs: "18446744073709551623", rhs: "2576980379", expecting: "18446744076286531999") + self.orTest(lhs: "18446744073709551623", rhs: "-2576980379", expecting: "-2576980377") + self.orTest(lhs: "18446744073709551623", rhs: "1717986920", expecting: "18446744075427538543") + self.orTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "-1717986913") + self.orTest(lhs: "18446744073709551623", rhs: "858993461", expecting: "18446744074568545079") + self.orTest(lhs: "18446744073709551623", rhs: "-858993461", expecting: "-858993457") + 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: "8589934592", expecting: "-18446744073709551623") + self.orTest(lhs: "-18446744073709551623", rhs: "-8589934592", expecting: "-7") + self.orTest(lhs: "-18446744073709551623", rhs: "7730941133", expecting: "-18446744073709551619") + self.orTest(lhs: "-18446744073709551623", rhs: "-7730941133", expecting: "-5") + self.orTest(lhs: "-18446744073709551623", rhs: "6871947674", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551623", rhs: "-6871947674", expecting: "-1") + self.orTest(lhs: "-18446744073709551623", rhs: "6012954215", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551623", rhs: "-6012954215", expecting: "-7") + self.orTest(lhs: "-18446744073709551623", rhs: "5153960756", expecting: "-18446744073709551619") + self.orTest(lhs: "-18446744073709551623", rhs: "-5153960756", expecting: "-3") + self.orTest(lhs: "-18446744073709551623", rhs: "4294967297", expecting: "-18446744073709551623") + self.orTest(lhs: "-18446744073709551623", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-18446744073709551623", rhs: "3435973838", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551623", rhs: "-3435973838", expecting: "-5") + self.orTest(lhs: "-18446744073709551623", rhs: "2576980379", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551623", rhs: "-2576980379", expecting: "-3") + self.orTest(lhs: "-18446744073709551623", rhs: "1717986920", expecting: "-18446744073709551623") + self.orTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "-7") + self.orTest(lhs: "-18446744073709551623", rhs: "858993461", expecting: "-18446744073709551619") + self.orTest(lhs: "-18446744073709551623", rhs: "-858993461", expecting: "-5") + 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: "8589934592", expecting: "340282366920938463592501815956325007362") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "-8589934590") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "7730941133", expecting: "340282366920938463592501815955466013903") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "6871947674", expecting: "340282366920938463592501815954607020442") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "-6871947674") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "6012954215", expecting: "340282366920938463592501815953748026983") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "-6012954213") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "5153960756", expecting: "340282366920938463592501815952889033526") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "-5153960754") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "4294967297", expecting: "340282366920938463592501815952030040067") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "3435973838", expecting: "340282366920938463592501815951171046606") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "-3435973838") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "2576980379", expecting: "340282366920938463592501815950312053147") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "-2576980377") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986920", expecting: "340282366920938463592501815949453059690") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-1717986918") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "858993461", expecting: "340282366920938463592501815948594066231") + self.orTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "7730941133", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "-1") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "6871947674", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "6012954215", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "-1") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "5153960756", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "4294967297", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "3435973838", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "2576980379", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "-1") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986920", expecting: "-340282366920938463592501815947735072770") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-2") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993461", expecting: "-340282366920938463592501815947735072769") + self.orTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993461", expecting: "-1") + 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: "8589934592", expecting: "6277101735386680766558048358575174123680225095410803277835") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "-8589934581") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "6277101735386680766558048358575174123680225095409944284367") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "-7730941125") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "6277101735386680766558048358575174123680225095409085290907") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "-6871947665") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "6277101735386680766558048358575174123680225095408226297455") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "-6012954213") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "6277101735386680766558048358575174123680225095407367303999") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "-5153960753") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "6277101735386680766558048358575174123680225095406508310539") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "6277101735386680766558048358575174123680225095405649317071") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "-3435973829") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "6277101735386680766558048358575174123680225095404790323611") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "-2576980369") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "6277101735386680766558048358575174123680225095403931330155") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-1717986917") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "6277101735386680766558048358575174123680225095403072336703") + self.orTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "-11") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "-6277101735386680766558048358575174123680225095402213343235") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "-9") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "-9") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "-6277101735386680766558048358575174123680225095402213343241") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "-3") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "-3") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "-9") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "-6277101735386680766558048358575174123680225095402213343233") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "-11") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "-6277101735386680766558048358575174123680225095402213343235") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-3") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "-6277101735386680766558048358575174123680225095402213343243") + self.orTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "-1") + 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: "8589934592", expecting: "18446744082299486221") + self.orTest(lhs: "18446744073709551629", rhs: "-8589934592", expecting: "-8589934579") + self.orTest(lhs: "18446744073709551629", rhs: "7730941133", expecting: "18446744081440492749") + self.orTest(lhs: "18446744073709551629", rhs: "-7730941133", expecting: "-7730941121") + self.orTest(lhs: "18446744073709551629", rhs: "6871947674", expecting: "18446744080581499295") + self.orTest(lhs: "18446744073709551629", rhs: "-6871947674", expecting: "-6871947665") + self.orTest(lhs: "18446744073709551629", rhs: "6012954215", expecting: "18446744079722505839") + self.orTest(lhs: "18446744073709551629", rhs: "-6012954215", expecting: "-6012954211") + self.orTest(lhs: "18446744073709551629", rhs: "5153960756", expecting: "18446744078863512381") + self.orTest(lhs: "18446744073709551629", rhs: "-5153960756", expecting: "-5153960755") + self.orTest(lhs: "18446744073709551629", rhs: "4294967297", expecting: "18446744078004518925") + self.orTest(lhs: "18446744073709551629", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "18446744073709551629", rhs: "3435973838", expecting: "18446744077145525455") + self.orTest(lhs: "18446744073709551629", rhs: "-3435973838", expecting: "-3435973825") + self.orTest(lhs: "18446744073709551629", rhs: "2576980379", expecting: "18446744076286531999") + self.orTest(lhs: "18446744073709551629", rhs: "-2576980379", expecting: "-2576980371") + self.orTest(lhs: "18446744073709551629", rhs: "1717986920", expecting: "18446744075427538541") + self.orTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "-1717986915") + self.orTest(lhs: "18446744073709551629", rhs: "858993461", expecting: "18446744074568545085") + self.orTest(lhs: "18446744073709551629", rhs: "-858993461", expecting: "-858993457") + 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: "8589934592", expecting: "-18446744073709551629") + self.orTest(lhs: "-18446744073709551629", rhs: "-8589934592", expecting: "-13") + self.orTest(lhs: "-18446744073709551629", rhs: "7730941133", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551629", rhs: "-7730941133", expecting: "-13") + self.orTest(lhs: "-18446744073709551629", rhs: "6871947674", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551629", rhs: "-6871947674", expecting: "-9") + self.orTest(lhs: "-18446744073709551629", rhs: "6012954215", expecting: "-18446744073709551625") + self.orTest(lhs: "-18446744073709551629", rhs: "-6012954215", expecting: "-5") + self.orTest(lhs: "-18446744073709551629", rhs: "5153960756", expecting: "-18446744073709551625") + self.orTest(lhs: "-18446744073709551629", rhs: "-5153960756", expecting: "-1") + self.orTest(lhs: "-18446744073709551629", rhs: "4294967297", expecting: "-18446744073709551629") + self.orTest(lhs: "-18446744073709551629", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-18446744073709551629", rhs: "3435973838", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551629", rhs: "-3435973838", expecting: "-13") + self.orTest(lhs: "-18446744073709551629", rhs: "2576980379", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551629", rhs: "-2576980379", expecting: "-9") + self.orTest(lhs: "-18446744073709551629", rhs: "1717986920", expecting: "-18446744073709551621") + self.orTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "-5") + self.orTest(lhs: "-18446744073709551629", rhs: "858993461", expecting: "-18446744073709551625") + self.orTest(lhs: "-18446744073709551629", rhs: "-858993461", expecting: "-5") + 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: "8589934592", expecting: "340282366920938463703182280398582317058") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "-8589934590") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "7730941133", expecting: "340282366920938463703182280397723323599") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "6871947674", expecting: "340282366920938463703182280396864330138") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "-6871947674") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "6012954215", expecting: "340282366920938463703182280396005336679") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "-6012954213") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "5153960756", expecting: "340282366920938463703182280395146343222") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "-5153960754") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "4294967297", expecting: "340282366920938463703182280394287349763") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "3435973838", expecting: "340282366920938463703182280393428356302") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "-3435973838") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "2576980379", expecting: "340282366920938463703182280392569362843") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "-2576980377") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986920", expecting: "340282366920938463703182280391710369386") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-1717986918") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "858993461", expecting: "340282366920938463703182280390851375927") + self.orTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "7730941133", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "-1") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "6871947674", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "6012954215", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "-1") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "5153960756", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "4294967297", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "3435973838", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "2576980379", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "-1") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986920", expecting: "-340282366920938463703182280389992382466") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-2") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993461", expecting: "-340282366920938463703182280389992382465") + self.orTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993461", expecting: "-1") + 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: "8589934592", expecting: "6277101735386680768599742560100804904349792275559155236881") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "-8589934575") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "6277101735386680768599742560100804904349792275558296243421") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "6277101735386680768599742560100804904349792275557437249947") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "-6871947657") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "6277101735386680768599742560100804904349792275556578256503") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "-6012954215") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "6277101735386680768599742560100804904349792275555719263029") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "-5153960739") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "6277101735386680768599742560100804904349792275554860269585") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "6277101735386680768599742560100804904349792275554001276127") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "-3435973837") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "6277101735386680768599742560100804904349792275553142282651") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "-2576980363") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "6277101735386680768599742560100804904349792275552283289209") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-1717986919") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "6277101735386680768599742560100804904349792275551424295733") + self.orTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "-858993445") + 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: "8589934592", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "-17") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "-1") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "-17") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "-1") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "-17") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "-1") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "-17") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "-6277101735386680768599742560100804904349792275550565302289") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-1") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "-6277101735386680768599742560100804904349792275550565302273") + self.orTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", 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: "8589934592", expecting: "18446744082299486227") + self.orTest(lhs: "18446744073709551635", rhs: "-8589934592", expecting: "-8589934573") + self.orTest(lhs: "18446744073709551635", rhs: "7730941133", expecting: "18446744081440492767") + self.orTest(lhs: "18446744073709551635", rhs: "-7730941133", expecting: "-7730941133") + self.orTest(lhs: "18446744073709551635", rhs: "6871947674", expecting: "18446744080581499291") + self.orTest(lhs: "18446744073709551635", rhs: "-6871947674", expecting: "-6871947657") + self.orTest(lhs: "18446744073709551635", rhs: "6012954215", expecting: "18446744079722505847") + self.orTest(lhs: "18446744073709551635", rhs: "-6012954215", expecting: "-6012954213") + self.orTest(lhs: "18446744073709551635", rhs: "5153960756", expecting: "18446744078863512375") + self.orTest(lhs: "18446744073709551635", rhs: "-5153960756", expecting: "-5153960737") + self.orTest(lhs: "18446744073709551635", rhs: "4294967297", expecting: "18446744078004518931") + self.orTest(lhs: "18446744073709551635", rhs: "-4294967297", expecting: "-4294967297") + self.orTest(lhs: "18446744073709551635", rhs: "3435973838", expecting: "18446744077145525471") + self.orTest(lhs: "18446744073709551635", rhs: "-3435973838", expecting: "-3435973837") + self.orTest(lhs: "18446744073709551635", rhs: "2576980379", expecting: "18446744076286531995") + self.orTest(lhs: "18446744073709551635", rhs: "-2576980379", expecting: "-2576980361") + self.orTest(lhs: "18446744073709551635", rhs: "1717986920", expecting: "18446744075427538555") + self.orTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "-1717986917") + self.orTest(lhs: "18446744073709551635", rhs: "858993461", expecting: "18446744074568545079") + self.orTest(lhs: "18446744073709551635", rhs: "-858993461", expecting: "-858993445") + 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: "8589934592", expecting: "-18446744073709551635") + self.orTest(lhs: "-18446744073709551635", rhs: "-8589934592", expecting: "-19") + self.orTest(lhs: "-18446744073709551635", rhs: "7730941133", expecting: "-18446744073709551635") + self.orTest(lhs: "-18446744073709551635", rhs: "-7730941133", expecting: "-1") + self.orTest(lhs: "-18446744073709551635", rhs: "6871947674", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "-6871947674", expecting: "-17") + self.orTest(lhs: "-18446744073709551635", rhs: "6012954215", expecting: "-18446744073709551633") + self.orTest(lhs: "-18446744073709551635", rhs: "-6012954215", expecting: "-3") + self.orTest(lhs: "-18446744073709551635", rhs: "5153960756", expecting: "-18446744073709551619") + self.orTest(lhs: "-18446744073709551635", rhs: "-5153960756", expecting: "-19") + self.orTest(lhs: "-18446744073709551635", rhs: "4294967297", expecting: "-18446744073709551635") + self.orTest(lhs: "-18446744073709551635", rhs: "-4294967297", expecting: "-1") + self.orTest(lhs: "-18446744073709551635", rhs: "3435973838", expecting: "-18446744073709551633") + self.orTest(lhs: "-18446744073709551635", rhs: "-3435973838", expecting: "-1") + self.orTest(lhs: "-18446744073709551635", rhs: "2576980379", expecting: "-18446744073709551617") + self.orTest(lhs: "-18446744073709551635", rhs: "-2576980379", expecting: "-19") + self.orTest(lhs: "-18446744073709551635", rhs: "1717986920", expecting: "-18446744073709551635") + self.orTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "-3") + self.orTest(lhs: "-18446744073709551635", rhs: "858993461", expecting: "-18446744073709551619") + self.orTest(lhs: "-18446744073709551635", rhs: "-858993461", expecting: "-17") + } + + func test_or_big_big() { + 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_int_int() { + 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: "8589934592", expecting: "8589934592") + self.xorTest(lhs: "0", rhs: "-8589934592", expecting: "-8589934592") + self.xorTest(lhs: "0", rhs: "7730941133", expecting: "7730941133") + self.xorTest(lhs: "0", rhs: "-7730941133", expecting: "-7730941133") + self.xorTest(lhs: "0", rhs: "6871947674", expecting: "6871947674") + self.xorTest(lhs: "0", rhs: "-6871947674", expecting: "-6871947674") + self.xorTest(lhs: "0", rhs: "6012954215", expecting: "6012954215") + self.xorTest(lhs: "0", rhs: "-6012954215", expecting: "-6012954215") + self.xorTest(lhs: "0", rhs: "5153960756", expecting: "5153960756") + self.xorTest(lhs: "0", rhs: "-5153960756", expecting: "-5153960756") + self.xorTest(lhs: "0", rhs: "4294967297", expecting: "4294967297") + self.xorTest(lhs: "0", rhs: "-4294967297", expecting: "-4294967297") + self.xorTest(lhs: "0", rhs: "3435973838", expecting: "3435973838") + self.xorTest(lhs: "0", rhs: "-3435973838", expecting: "-3435973838") + self.xorTest(lhs: "0", rhs: "2576980379", expecting: "2576980379") + self.xorTest(lhs: "0", rhs: "-2576980379", expecting: "-2576980379") + self.xorTest(lhs: "0", rhs: "1717986920", expecting: "1717986920") + self.xorTest(lhs: "0", rhs: "-1717986920", expecting: "-1717986920") + self.xorTest(lhs: "0", rhs: "858993461", expecting: "858993461") + self.xorTest(lhs: "0", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "8589934593") + self.xorTest(lhs: "1", rhs: "-8589934592", expecting: "-8589934591") + self.xorTest(lhs: "1", rhs: "7730941133", expecting: "7730941132") + self.xorTest(lhs: "1", rhs: "-7730941133", expecting: "-7730941134") + self.xorTest(lhs: "1", rhs: "6871947674", expecting: "6871947675") + self.xorTest(lhs: "1", rhs: "-6871947674", expecting: "-6871947673") + self.xorTest(lhs: "1", rhs: "6012954215", expecting: "6012954214") + self.xorTest(lhs: "1", rhs: "-6012954215", expecting: "-6012954216") + self.xorTest(lhs: "1", rhs: "5153960756", expecting: "5153960757") + self.xorTest(lhs: "1", rhs: "-5153960756", expecting: "-5153960755") + self.xorTest(lhs: "1", rhs: "4294967297", expecting: "4294967296") + self.xorTest(lhs: "1", rhs: "-4294967297", expecting: "-4294967298") + self.xorTest(lhs: "1", rhs: "3435973838", expecting: "3435973839") + self.xorTest(lhs: "1", rhs: "-3435973838", expecting: "-3435973837") + self.xorTest(lhs: "1", rhs: "2576980379", expecting: "2576980378") + self.xorTest(lhs: "1", rhs: "-2576980379", expecting: "-2576980380") + self.xorTest(lhs: "1", rhs: "1717986920", expecting: "1717986921") + self.xorTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986919") + self.xorTest(lhs: "1", rhs: "858993461", expecting: "858993460") + self.xorTest(lhs: "1", rhs: "-858993461", expecting: "-858993462") + 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: "8589934592", expecting: "-8589934593") + self.xorTest(lhs: "-1", rhs: "-8589934592", expecting: "8589934591") + self.xorTest(lhs: "-1", rhs: "7730941133", expecting: "-7730941134") + self.xorTest(lhs: "-1", rhs: "-7730941133", expecting: "7730941132") + self.xorTest(lhs: "-1", rhs: "6871947674", expecting: "-6871947675") + self.xorTest(lhs: "-1", rhs: "-6871947674", expecting: "6871947673") + self.xorTest(lhs: "-1", rhs: "6012954215", expecting: "-6012954216") + self.xorTest(lhs: "-1", rhs: "-6012954215", expecting: "6012954214") + self.xorTest(lhs: "-1", rhs: "5153960756", expecting: "-5153960757") + self.xorTest(lhs: "-1", rhs: "-5153960756", expecting: "5153960755") + self.xorTest(lhs: "-1", rhs: "4294967297", expecting: "-4294967298") + self.xorTest(lhs: "-1", rhs: "-4294967297", expecting: "4294967296") + self.xorTest(lhs: "-1", rhs: "3435973838", expecting: "-3435973839") + self.xorTest(lhs: "-1", rhs: "-3435973838", expecting: "3435973837") + self.xorTest(lhs: "-1", rhs: "2576980379", expecting: "-2576980380") + self.xorTest(lhs: "-1", rhs: "-2576980379", expecting: "2576980378") + self.xorTest(lhs: "-1", rhs: "1717986920", expecting: "-1717986921") + self.xorTest(lhs: "-1", rhs: "-1717986920", expecting: "1717986919") + self.xorTest(lhs: "-1", rhs: "858993461", expecting: "-858993462") + self.xorTest(lhs: "-1", rhs: "-858993461", expecting: "858993460") + self.xorTest(lhs: "8589934592", rhs: "0", expecting: "8589934592") + self.xorTest(lhs: "8589934592", rhs: "1", expecting: "8589934593") + self.xorTest(lhs: "8589934592", rhs: "-1", expecting: "-8589934593") + self.xorTest(lhs: "8589934592", rhs: "8589934592", expecting: "0") + self.xorTest(lhs: "8589934592", rhs: "-8589934592", expecting: "-17179869184") + self.xorTest(lhs: "8589934592", rhs: "7730941133", expecting: "16320875725") + self.xorTest(lhs: "8589934592", rhs: "-7730941133", expecting: "-16320875725") + self.xorTest(lhs: "8589934592", rhs: "6871947674", expecting: "15461882266") + self.xorTest(lhs: "8589934592", rhs: "-6871947674", expecting: "-15461882266") + self.xorTest(lhs: "8589934592", rhs: "6012954215", expecting: "14602888807") + self.xorTest(lhs: "8589934592", rhs: "-6012954215", expecting: "-14602888807") + self.xorTest(lhs: "8589934592", rhs: "5153960756", expecting: "13743895348") + self.xorTest(lhs: "8589934592", rhs: "-5153960756", expecting: "-13743895348") + self.xorTest(lhs: "8589934592", rhs: "4294967297", expecting: "12884901889") + self.xorTest(lhs: "8589934592", rhs: "-4294967297", expecting: "-12884901889") + self.xorTest(lhs: "8589934592", rhs: "3435973838", expecting: "12025908430") + self.xorTest(lhs: "8589934592", rhs: "-3435973838", expecting: "-12025908430") + self.xorTest(lhs: "8589934592", rhs: "2576980379", expecting: "11166914971") + self.xorTest(lhs: "8589934592", rhs: "-2576980379", expecting: "-11166914971") + self.xorTest(lhs: "8589934592", rhs: "1717986920", expecting: "10307921512") + self.xorTest(lhs: "8589934592", rhs: "-1717986920", expecting: "-10307921512") + self.xorTest(lhs: "8589934592", rhs: "858993461", expecting: "9448928053") + self.xorTest(lhs: "8589934592", rhs: "-858993461", expecting: "-9448928053") + self.xorTest(lhs: "-8589934592", rhs: "0", expecting: "-8589934592") + self.xorTest(lhs: "-8589934592", rhs: "1", expecting: "-8589934591") + self.xorTest(lhs: "-8589934592", rhs: "-1", expecting: "8589934591") + self.xorTest(lhs: "-8589934592", rhs: "8589934592", expecting: "-17179869184") + self.xorTest(lhs: "-8589934592", rhs: "-8589934592", expecting: "0") + self.xorTest(lhs: "-8589934592", rhs: "7730941133", expecting: "-858993459") + self.xorTest(lhs: "-8589934592", rhs: "-7730941133", expecting: "858993459") + self.xorTest(lhs: "-8589934592", rhs: "6871947674", expecting: "-1717986918") + self.xorTest(lhs: "-8589934592", rhs: "-6871947674", expecting: "1717986918") + self.xorTest(lhs: "-8589934592", rhs: "6012954215", expecting: "-2576980377") + self.xorTest(lhs: "-8589934592", rhs: "-6012954215", expecting: "2576980377") + self.xorTest(lhs: "-8589934592", rhs: "5153960756", expecting: "-3435973836") + self.xorTest(lhs: "-8589934592", rhs: "-5153960756", expecting: "3435973836") + self.xorTest(lhs: "-8589934592", rhs: "4294967297", expecting: "-4294967295") + self.xorTest(lhs: "-8589934592", rhs: "-4294967297", expecting: "4294967295") + self.xorTest(lhs: "-8589934592", rhs: "3435973838", expecting: "-5153960754") + self.xorTest(lhs: "-8589934592", rhs: "-3435973838", expecting: "5153960754") + self.xorTest(lhs: "-8589934592", rhs: "2576980379", expecting: "-6012954213") + self.xorTest(lhs: "-8589934592", rhs: "-2576980379", expecting: "6012954213") + self.xorTest(lhs: "-8589934592", rhs: "1717986920", expecting: "-6871947672") + self.xorTest(lhs: "-8589934592", rhs: "-1717986920", expecting: "6871947672") + self.xorTest(lhs: "-8589934592", rhs: "858993461", expecting: "-7730941131") + self.xorTest(lhs: "-8589934592", rhs: "-858993461", expecting: "7730941131") + self.xorTest(lhs: "7730941133", rhs: "0", expecting: "7730941133") + self.xorTest(lhs: "7730941133", rhs: "1", expecting: "7730941132") + self.xorTest(lhs: "7730941133", rhs: "-1", expecting: "-7730941134") + self.xorTest(lhs: "7730941133", rhs: "8589934592", expecting: "16320875725") + self.xorTest(lhs: "7730941133", rhs: "-8589934592", expecting: "-858993459") + self.xorTest(lhs: "7730941133", rhs: "7730941133", expecting: "0") + self.xorTest(lhs: "7730941133", rhs: "-7730941133", expecting: "-2") + self.xorTest(lhs: "7730941133", rhs: "6871947674", expecting: "1431655767") + self.xorTest(lhs: "7730941133", rhs: "-6871947674", expecting: "-1431655765") + self.xorTest(lhs: "7730941133", rhs: "6012954215", expecting: "2863311530") + self.xorTest(lhs: "7730941133", rhs: "-6012954215", expecting: "-2863311532") + self.xorTest(lhs: "7730941133", rhs: "5153960756", expecting: "4294967289") + self.xorTest(lhs: "7730941133", rhs: "-5153960756", expecting: "-4294967295") + self.xorTest(lhs: "7730941133", rhs: "4294967297", expecting: "3435973836") + self.xorTest(lhs: "7730941133", rhs: "-4294967297", expecting: "-3435973838") + self.xorTest(lhs: "7730941133", rhs: "3435973838", expecting: "4294967299") + self.xorTest(lhs: "7730941133", rhs: "-3435973838", expecting: "-4294967297") + self.xorTest(lhs: "7730941133", rhs: "2576980379", expecting: "5726623062") + self.xorTest(lhs: "7730941133", rhs: "-2576980379", expecting: "-5726623064") + self.xorTest(lhs: "7730941133", rhs: "1717986920", expecting: "7158278821") + self.xorTest(lhs: "7730941133", rhs: "-1717986920", expecting: "-7158278827") + self.xorTest(lhs: "7730941133", rhs: "858993461", expecting: "8589934584") + self.xorTest(lhs: "7730941133", rhs: "-858993461", expecting: "-8589934586") + self.xorTest(lhs: "-7730941133", rhs: "0", expecting: "-7730941133") + self.xorTest(lhs: "-7730941133", rhs: "1", expecting: "-7730941134") + self.xorTest(lhs: "-7730941133", rhs: "-1", expecting: "7730941132") + self.xorTest(lhs: "-7730941133", rhs: "8589934592", expecting: "-16320875725") + self.xorTest(lhs: "-7730941133", rhs: "-8589934592", expecting: "858993459") + self.xorTest(lhs: "-7730941133", rhs: "7730941133", expecting: "-2") + self.xorTest(lhs: "-7730941133", rhs: "-7730941133", expecting: "0") + self.xorTest(lhs: "-7730941133", rhs: "6871947674", expecting: "-1431655767") + self.xorTest(lhs: "-7730941133", rhs: "-6871947674", expecting: "1431655765") + self.xorTest(lhs: "-7730941133", rhs: "6012954215", expecting: "-2863311532") + self.xorTest(lhs: "-7730941133", rhs: "-6012954215", expecting: "2863311530") + self.xorTest(lhs: "-7730941133", rhs: "5153960756", expecting: "-4294967289") + self.xorTest(lhs: "-7730941133", rhs: "-5153960756", expecting: "4294967295") + self.xorTest(lhs: "-7730941133", rhs: "4294967297", expecting: "-3435973838") + self.xorTest(lhs: "-7730941133", rhs: "-4294967297", expecting: "3435973836") + self.xorTest(lhs: "-7730941133", rhs: "3435973838", expecting: "-4294967299") + self.xorTest(lhs: "-7730941133", rhs: "-3435973838", expecting: "4294967297") + self.xorTest(lhs: "-7730941133", rhs: "2576980379", expecting: "-5726623064") + self.xorTest(lhs: "-7730941133", rhs: "-2576980379", expecting: "5726623062") + self.xorTest(lhs: "-7730941133", rhs: "1717986920", expecting: "-7158278821") + self.xorTest(lhs: "-7730941133", rhs: "-1717986920", expecting: "7158278827") + self.xorTest(lhs: "-7730941133", rhs: "858993461", expecting: "-8589934586") + self.xorTest(lhs: "-7730941133", rhs: "-858993461", expecting: "8589934584") + self.xorTest(lhs: "6871947674", rhs: "0", expecting: "6871947674") + self.xorTest(lhs: "6871947674", rhs: "1", expecting: "6871947675") + self.xorTest(lhs: "6871947674", rhs: "-1", expecting: "-6871947675") + self.xorTest(lhs: "6871947674", rhs: "8589934592", expecting: "15461882266") + self.xorTest(lhs: "6871947674", rhs: "-8589934592", expecting: "-1717986918") + self.xorTest(lhs: "6871947674", rhs: "7730941133", expecting: "1431655767") + self.xorTest(lhs: "6871947674", rhs: "-7730941133", expecting: "-1431655767") + self.xorTest(lhs: "6871947674", rhs: "6871947674", expecting: "0") + self.xorTest(lhs: "6871947674", rhs: "-6871947674", expecting: "-4") + self.xorTest(lhs: "6871947674", rhs: "6012954215", expecting: "4294967293") + self.xorTest(lhs: "6871947674", rhs: "-6012954215", expecting: "-4294967293") + self.xorTest(lhs: "6871947674", rhs: "5153960756", expecting: "2863311534") + self.xorTest(lhs: "6871947674", rhs: "-5153960756", expecting: "-2863311530") + self.xorTest(lhs: "6871947674", rhs: "4294967297", expecting: "2576980379") + self.xorTest(lhs: "6871947674", rhs: "-4294967297", expecting: "-2576980379") + self.xorTest(lhs: "6871947674", rhs: "3435973838", expecting: "5726623060") + self.xorTest(lhs: "6871947674", rhs: "-3435973838", expecting: "-5726623064") + self.xorTest(lhs: "6871947674", rhs: "2576980379", expecting: "4294967297") + self.xorTest(lhs: "6871947674", rhs: "-2576980379", expecting: "-4294967297") + self.xorTest(lhs: "6871947674", rhs: "1717986920", expecting: "8589934578") + self.xorTest(lhs: "6871947674", rhs: "-1717986920", expecting: "-8589934590") + self.xorTest(lhs: "6871947674", rhs: "858993461", expecting: "7158278831") + self.xorTest(lhs: "6871947674", rhs: "-858993461", expecting: "-7158278831") + self.xorTest(lhs: "-6871947674", rhs: "0", expecting: "-6871947674") + self.xorTest(lhs: "-6871947674", rhs: "1", expecting: "-6871947673") + self.xorTest(lhs: "-6871947674", rhs: "-1", expecting: "6871947673") + self.xorTest(lhs: "-6871947674", rhs: "8589934592", expecting: "-15461882266") + self.xorTest(lhs: "-6871947674", rhs: "-8589934592", expecting: "1717986918") + self.xorTest(lhs: "-6871947674", rhs: "7730941133", expecting: "-1431655765") + self.xorTest(lhs: "-6871947674", rhs: "-7730941133", expecting: "1431655765") + self.xorTest(lhs: "-6871947674", rhs: "6871947674", expecting: "-4") + self.xorTest(lhs: "-6871947674", rhs: "-6871947674", expecting: "0") + self.xorTest(lhs: "-6871947674", rhs: "6012954215", expecting: "-4294967295") + self.xorTest(lhs: "-6871947674", rhs: "-6012954215", expecting: "4294967295") + self.xorTest(lhs: "-6871947674", rhs: "5153960756", expecting: "-2863311534") + self.xorTest(lhs: "-6871947674", rhs: "-5153960756", expecting: "2863311530") + self.xorTest(lhs: "-6871947674", rhs: "4294967297", expecting: "-2576980377") + self.xorTest(lhs: "-6871947674", rhs: "-4294967297", expecting: "2576980377") + self.xorTest(lhs: "-6871947674", rhs: "3435973838", expecting: "-5726623064") + self.xorTest(lhs: "-6871947674", rhs: "-3435973838", expecting: "5726623060") + self.xorTest(lhs: "-6871947674", rhs: "2576980379", expecting: "-4294967299") + self.xorTest(lhs: "-6871947674", rhs: "-2576980379", expecting: "4294967299") + self.xorTest(lhs: "-6871947674", rhs: "1717986920", expecting: "-8589934578") + self.xorTest(lhs: "-6871947674", rhs: "-1717986920", expecting: "8589934590") + self.xorTest(lhs: "-6871947674", rhs: "858993461", expecting: "-7158278829") + self.xorTest(lhs: "-6871947674", rhs: "-858993461", expecting: "7158278829") + self.xorTest(lhs: "6012954215", rhs: "0", expecting: "6012954215") + self.xorTest(lhs: "6012954215", rhs: "1", expecting: "6012954214") + self.xorTest(lhs: "6012954215", rhs: "-1", expecting: "-6012954216") + self.xorTest(lhs: "6012954215", rhs: "8589934592", expecting: "14602888807") + self.xorTest(lhs: "6012954215", rhs: "-8589934592", expecting: "-2576980377") + self.xorTest(lhs: "6012954215", rhs: "7730941133", expecting: "2863311530") + self.xorTest(lhs: "6012954215", rhs: "-7730941133", expecting: "-2863311532") + self.xorTest(lhs: "6012954215", rhs: "6871947674", expecting: "4294967293") + self.xorTest(lhs: "6012954215", rhs: "-6871947674", expecting: "-4294967295") + self.xorTest(lhs: "6012954215", rhs: "6012954215", expecting: "0") + self.xorTest(lhs: "6012954215", rhs: "-6012954215", expecting: "-2") + self.xorTest(lhs: "6012954215", rhs: "5153960756", expecting: "1431655763") + self.xorTest(lhs: "6012954215", rhs: "-5153960756", expecting: "-1431655765") + self.xorTest(lhs: "6012954215", rhs: "4294967297", expecting: "1717986918") + self.xorTest(lhs: "6012954215", rhs: "-4294967297", expecting: "-1717986920") + self.xorTest(lhs: "6012954215", rhs: "3435973838", expecting: "7158278825") + self.xorTest(lhs: "6012954215", rhs: "-3435973838", expecting: "-7158278827") + self.xorTest(lhs: "6012954215", rhs: "2576980379", expecting: "8589934588") + self.xorTest(lhs: "6012954215", rhs: "-2576980379", expecting: "-8589934590") + self.xorTest(lhs: "6012954215", rhs: "1717986920", expecting: "4294967311") + self.xorTest(lhs: "6012954215", rhs: "-1717986920", expecting: "-4294967297") + self.xorTest(lhs: "6012954215", rhs: "858993461", expecting: "5726623058") + self.xorTest(lhs: "6012954215", rhs: "-858993461", expecting: "-5726623060") + self.xorTest(lhs: "-6012954215", rhs: "0", expecting: "-6012954215") + self.xorTest(lhs: "-6012954215", rhs: "1", expecting: "-6012954216") + self.xorTest(lhs: "-6012954215", rhs: "-1", expecting: "6012954214") + self.xorTest(lhs: "-6012954215", rhs: "8589934592", expecting: "-14602888807") + self.xorTest(lhs: "-6012954215", rhs: "-8589934592", expecting: "2576980377") + self.xorTest(lhs: "-6012954215", rhs: "7730941133", expecting: "-2863311532") + self.xorTest(lhs: "-6012954215", rhs: "-7730941133", expecting: "2863311530") + self.xorTest(lhs: "-6012954215", rhs: "6871947674", expecting: "-4294967293") + self.xorTest(lhs: "-6012954215", rhs: "-6871947674", expecting: "4294967295") + self.xorTest(lhs: "-6012954215", rhs: "6012954215", expecting: "-2") + self.xorTest(lhs: "-6012954215", rhs: "-6012954215", expecting: "0") + self.xorTest(lhs: "-6012954215", rhs: "5153960756", expecting: "-1431655763") + self.xorTest(lhs: "-6012954215", rhs: "-5153960756", expecting: "1431655765") + self.xorTest(lhs: "-6012954215", rhs: "4294967297", expecting: "-1717986920") + self.xorTest(lhs: "-6012954215", rhs: "-4294967297", expecting: "1717986918") + self.xorTest(lhs: "-6012954215", rhs: "3435973838", expecting: "-7158278825") + self.xorTest(lhs: "-6012954215", rhs: "-3435973838", expecting: "7158278827") + self.xorTest(lhs: "-6012954215", rhs: "2576980379", expecting: "-8589934590") + self.xorTest(lhs: "-6012954215", rhs: "-2576980379", expecting: "8589934588") + self.xorTest(lhs: "-6012954215", rhs: "1717986920", expecting: "-4294967311") + self.xorTest(lhs: "-6012954215", rhs: "-1717986920", expecting: "4294967297") + self.xorTest(lhs: "-6012954215", rhs: "858993461", expecting: "-5726623060") + self.xorTest(lhs: "-6012954215", rhs: "-858993461", expecting: "5726623058") + self.xorTest(lhs: "5153960756", rhs: "0", expecting: "5153960756") + self.xorTest(lhs: "5153960756", rhs: "1", expecting: "5153960757") + self.xorTest(lhs: "5153960756", rhs: "-1", expecting: "-5153960757") + self.xorTest(lhs: "5153960756", rhs: "8589934592", expecting: "13743895348") + self.xorTest(lhs: "5153960756", rhs: "-8589934592", expecting: "-3435973836") + self.xorTest(lhs: "5153960756", rhs: "7730941133", expecting: "4294967289") + self.xorTest(lhs: "5153960756", rhs: "-7730941133", expecting: "-4294967289") + self.xorTest(lhs: "5153960756", rhs: "6871947674", expecting: "2863311534") + self.xorTest(lhs: "5153960756", rhs: "-6871947674", expecting: "-2863311534") + self.xorTest(lhs: "5153960756", rhs: "6012954215", expecting: "1431655763") + self.xorTest(lhs: "5153960756", rhs: "-6012954215", expecting: "-1431655763") + self.xorTest(lhs: "5153960756", rhs: "5153960756", expecting: "0") + self.xorTest(lhs: "5153960756", rhs: "-5153960756", expecting: "-8") + self.xorTest(lhs: "5153960756", rhs: "4294967297", expecting: "858993461") + self.xorTest(lhs: "5153960756", rhs: "-4294967297", expecting: "-858993461") + self.xorTest(lhs: "5153960756", rhs: "3435973838", expecting: "8589934586") + self.xorTest(lhs: "5153960756", rhs: "-3435973838", expecting: "-8589934586") + self.xorTest(lhs: "5153960756", rhs: "2576980379", expecting: "7158278831") + self.xorTest(lhs: "5153960756", rhs: "-2576980379", expecting: "-7158278831") + self.xorTest(lhs: "5153960756", rhs: "1717986920", expecting: "5726623068") + self.xorTest(lhs: "5153960756", rhs: "-1717986920", expecting: "-5726623060") + self.xorTest(lhs: "5153960756", rhs: "858993461", expecting: "4294967297") + self.xorTest(lhs: "5153960756", rhs: "-858993461", expecting: "-4294967297") + self.xorTest(lhs: "-5153960756", rhs: "0", expecting: "-5153960756") + self.xorTest(lhs: "-5153960756", rhs: "1", expecting: "-5153960755") + self.xorTest(lhs: "-5153960756", rhs: "-1", expecting: "5153960755") + self.xorTest(lhs: "-5153960756", rhs: "8589934592", expecting: "-13743895348") + self.xorTest(lhs: "-5153960756", rhs: "-8589934592", expecting: "3435973836") + self.xorTest(lhs: "-5153960756", rhs: "7730941133", expecting: "-4294967295") + self.xorTest(lhs: "-5153960756", rhs: "-7730941133", expecting: "4294967295") + self.xorTest(lhs: "-5153960756", rhs: "6871947674", expecting: "-2863311530") + self.xorTest(lhs: "-5153960756", rhs: "-6871947674", expecting: "2863311530") + self.xorTest(lhs: "-5153960756", rhs: "6012954215", expecting: "-1431655765") + self.xorTest(lhs: "-5153960756", rhs: "-6012954215", expecting: "1431655765") + self.xorTest(lhs: "-5153960756", rhs: "5153960756", expecting: "-8") + self.xorTest(lhs: "-5153960756", rhs: "-5153960756", expecting: "0") + self.xorTest(lhs: "-5153960756", rhs: "4294967297", expecting: "-858993459") + self.xorTest(lhs: "-5153960756", rhs: "-4294967297", expecting: "858993459") + self.xorTest(lhs: "-5153960756", rhs: "3435973838", expecting: "-8589934590") + self.xorTest(lhs: "-5153960756", rhs: "-3435973838", expecting: "8589934590") + self.xorTest(lhs: "-5153960756", rhs: "2576980379", expecting: "-7158278825") + self.xorTest(lhs: "-5153960756", rhs: "-2576980379", expecting: "7158278825") + self.xorTest(lhs: "-5153960756", rhs: "1717986920", expecting: "-5726623068") + self.xorTest(lhs: "-5153960756", rhs: "-1717986920", expecting: "5726623060") + self.xorTest(lhs: "-5153960756", rhs: "858993461", expecting: "-4294967303") + self.xorTest(lhs: "-5153960756", rhs: "-858993461", expecting: "4294967303") + self.xorTest(lhs: "4294967297", rhs: "0", expecting: "4294967297") + self.xorTest(lhs: "4294967297", rhs: "1", expecting: "4294967296") + self.xorTest(lhs: "4294967297", rhs: "-1", expecting: "-4294967298") + self.xorTest(lhs: "4294967297", rhs: "8589934592", expecting: "12884901889") + self.xorTest(lhs: "4294967297", rhs: "-8589934592", expecting: "-4294967295") + self.xorTest(lhs: "4294967297", rhs: "7730941133", expecting: "3435973836") + self.xorTest(lhs: "4294967297", rhs: "-7730941133", expecting: "-3435973838") + self.xorTest(lhs: "4294967297", rhs: "6871947674", expecting: "2576980379") + self.xorTest(lhs: "4294967297", rhs: "-6871947674", expecting: "-2576980377") + self.xorTest(lhs: "4294967297", rhs: "6012954215", expecting: "1717986918") + self.xorTest(lhs: "4294967297", rhs: "-6012954215", expecting: "-1717986920") + self.xorTest(lhs: "4294967297", rhs: "5153960756", expecting: "858993461") + self.xorTest(lhs: "4294967297", rhs: "-5153960756", expecting: "-858993459") + self.xorTest(lhs: "4294967297", rhs: "4294967297", expecting: "0") + self.xorTest(lhs: "4294967297", rhs: "-4294967297", expecting: "-2") + self.xorTest(lhs: "4294967297", rhs: "3435973838", expecting: "7730941135") + self.xorTest(lhs: "4294967297", rhs: "-3435973838", expecting: "-7730941133") + self.xorTest(lhs: "4294967297", rhs: "2576980379", expecting: "6871947674") + self.xorTest(lhs: "4294967297", rhs: "-2576980379", expecting: "-6871947676") + self.xorTest(lhs: "4294967297", rhs: "1717986920", expecting: "6012954217") + self.xorTest(lhs: "4294967297", rhs: "-1717986920", expecting: "-6012954215") + self.xorTest(lhs: "4294967297", rhs: "858993461", expecting: "5153960756") + self.xorTest(lhs: "4294967297", rhs: "-858993461", expecting: "-5153960758") + self.xorTest(lhs: "-4294967297", rhs: "0", expecting: "-4294967297") + self.xorTest(lhs: "-4294967297", rhs: "1", expecting: "-4294967298") + self.xorTest(lhs: "-4294967297", rhs: "-1", expecting: "4294967296") + self.xorTest(lhs: "-4294967297", rhs: "8589934592", expecting: "-12884901889") + self.xorTest(lhs: "-4294967297", rhs: "-8589934592", expecting: "4294967295") + self.xorTest(lhs: "-4294967297", rhs: "7730941133", expecting: "-3435973838") + self.xorTest(lhs: "-4294967297", rhs: "-7730941133", expecting: "3435973836") + self.xorTest(lhs: "-4294967297", rhs: "6871947674", expecting: "-2576980379") + self.xorTest(lhs: "-4294967297", rhs: "-6871947674", expecting: "2576980377") + self.xorTest(lhs: "-4294967297", rhs: "6012954215", expecting: "-1717986920") + self.xorTest(lhs: "-4294967297", rhs: "-6012954215", expecting: "1717986918") + self.xorTest(lhs: "-4294967297", rhs: "5153960756", expecting: "-858993461") + self.xorTest(lhs: "-4294967297", rhs: "-5153960756", expecting: "858993459") + self.xorTest(lhs: "-4294967297", rhs: "4294967297", expecting: "-2") + self.xorTest(lhs: "-4294967297", rhs: "-4294967297", expecting: "0") + self.xorTest(lhs: "-4294967297", rhs: "3435973838", expecting: "-7730941135") + self.xorTest(lhs: "-4294967297", rhs: "-3435973838", expecting: "7730941133") + self.xorTest(lhs: "-4294967297", rhs: "2576980379", expecting: "-6871947676") + self.xorTest(lhs: "-4294967297", rhs: "-2576980379", expecting: "6871947674") + self.xorTest(lhs: "-4294967297", rhs: "1717986920", expecting: "-6012954217") + self.xorTest(lhs: "-4294967297", rhs: "-1717986920", expecting: "6012954215") + self.xorTest(lhs: "-4294967297", rhs: "858993461", expecting: "-5153960758") + self.xorTest(lhs: "-4294967297", rhs: "-858993461", expecting: "5153960756") + self.xorTest(lhs: "3435973838", rhs: "0", expecting: "3435973838") + self.xorTest(lhs: "3435973838", rhs: "1", expecting: "3435973839") + self.xorTest(lhs: "3435973838", rhs: "-1", expecting: "-3435973839") + self.xorTest(lhs: "3435973838", rhs: "8589934592", expecting: "12025908430") + self.xorTest(lhs: "3435973838", rhs: "-8589934592", expecting: "-5153960754") + self.xorTest(lhs: "3435973838", rhs: "7730941133", expecting: "4294967299") + self.xorTest(lhs: "3435973838", rhs: "-7730941133", expecting: "-4294967299") + self.xorTest(lhs: "3435973838", rhs: "6871947674", expecting: "5726623060") + self.xorTest(lhs: "3435973838", rhs: "-6871947674", expecting: "-5726623064") + self.xorTest(lhs: "3435973838", rhs: "6012954215", expecting: "7158278825") + self.xorTest(lhs: "3435973838", rhs: "-6012954215", expecting: "-7158278825") + self.xorTest(lhs: "3435973838", rhs: "5153960756", expecting: "8589934586") + self.xorTest(lhs: "3435973838", rhs: "-5153960756", expecting: "-8589934590") + self.xorTest(lhs: "3435973838", rhs: "4294967297", expecting: "7730941135") + self.xorTest(lhs: "3435973838", rhs: "-4294967297", expecting: "-7730941135") + self.xorTest(lhs: "3435973838", rhs: "3435973838", expecting: "0") + self.xorTest(lhs: "3435973838", rhs: "-3435973838", expecting: "-4") + self.xorTest(lhs: "3435973838", rhs: "2576980379", expecting: "1431655765") + self.xorTest(lhs: "3435973838", rhs: "-2576980379", expecting: "-1431655765") + self.xorTest(lhs: "3435973838", rhs: "1717986920", expecting: "2863311526") + self.xorTest(lhs: "3435973838", rhs: "-1717986920", expecting: "-2863311530") + self.xorTest(lhs: "3435973838", rhs: "858993461", expecting: "4294967291") + self.xorTest(lhs: "3435973838", rhs: "-858993461", expecting: "-4294967291") + self.xorTest(lhs: "-3435973838", rhs: "0", expecting: "-3435973838") + self.xorTest(lhs: "-3435973838", rhs: "1", expecting: "-3435973837") + self.xorTest(lhs: "-3435973838", rhs: "-1", expecting: "3435973837") + self.xorTest(lhs: "-3435973838", rhs: "8589934592", expecting: "-12025908430") + self.xorTest(lhs: "-3435973838", rhs: "-8589934592", expecting: "5153960754") + self.xorTest(lhs: "-3435973838", rhs: "7730941133", expecting: "-4294967297") + self.xorTest(lhs: "-3435973838", rhs: "-7730941133", expecting: "4294967297") + self.xorTest(lhs: "-3435973838", rhs: "6871947674", expecting: "-5726623064") + self.xorTest(lhs: "-3435973838", rhs: "-6871947674", expecting: "5726623060") + self.xorTest(lhs: "-3435973838", rhs: "6012954215", expecting: "-7158278827") + self.xorTest(lhs: "-3435973838", rhs: "-6012954215", expecting: "7158278827") + self.xorTest(lhs: "-3435973838", rhs: "5153960756", expecting: "-8589934586") + self.xorTest(lhs: "-3435973838", rhs: "-5153960756", expecting: "8589934590") + self.xorTest(lhs: "-3435973838", rhs: "4294967297", expecting: "-7730941133") + self.xorTest(lhs: "-3435973838", rhs: "-4294967297", expecting: "7730941133") + self.xorTest(lhs: "-3435973838", rhs: "3435973838", expecting: "-4") + self.xorTest(lhs: "-3435973838", rhs: "-3435973838", expecting: "0") + self.xorTest(lhs: "-3435973838", rhs: "2576980379", expecting: "-1431655767") + self.xorTest(lhs: "-3435973838", rhs: "-2576980379", expecting: "1431655767") + self.xorTest(lhs: "-3435973838", rhs: "1717986920", expecting: "-2863311526") + self.xorTest(lhs: "-3435973838", rhs: "-1717986920", expecting: "2863311530") + self.xorTest(lhs: "-3435973838", rhs: "858993461", expecting: "-4294967289") + self.xorTest(lhs: "-3435973838", rhs: "-858993461", expecting: "4294967289") + self.xorTest(lhs: "2576980379", rhs: "0", expecting: "2576980379") + self.xorTest(lhs: "2576980379", rhs: "1", expecting: "2576980378") + self.xorTest(lhs: "2576980379", rhs: "-1", expecting: "-2576980380") + self.xorTest(lhs: "2576980379", rhs: "8589934592", expecting: "11166914971") + self.xorTest(lhs: "2576980379", rhs: "-8589934592", expecting: "-6012954213") + self.xorTest(lhs: "2576980379", rhs: "7730941133", expecting: "5726623062") + self.xorTest(lhs: "2576980379", rhs: "-7730941133", expecting: "-5726623064") + self.xorTest(lhs: "2576980379", rhs: "6871947674", expecting: "4294967297") + self.xorTest(lhs: "2576980379", rhs: "-6871947674", expecting: "-4294967299") + self.xorTest(lhs: "2576980379", rhs: "6012954215", expecting: "8589934588") + self.xorTest(lhs: "2576980379", rhs: "-6012954215", expecting: "-8589934590") + self.xorTest(lhs: "2576980379", rhs: "5153960756", expecting: "7158278831") + self.xorTest(lhs: "2576980379", rhs: "-5153960756", expecting: "-7158278825") + self.xorTest(lhs: "2576980379", rhs: "4294967297", expecting: "6871947674") + self.xorTest(lhs: "2576980379", rhs: "-4294967297", expecting: "-6871947676") + self.xorTest(lhs: "2576980379", rhs: "3435973838", expecting: "1431655765") + self.xorTest(lhs: "2576980379", rhs: "-3435973838", expecting: "-1431655767") + self.xorTest(lhs: "2576980379", rhs: "2576980379", expecting: "0") + self.xorTest(lhs: "2576980379", rhs: "-2576980379", expecting: "-2") + self.xorTest(lhs: "2576980379", rhs: "1717986920", expecting: "4294967283") + self.xorTest(lhs: "2576980379", rhs: "-1717986920", expecting: "-4294967293") + self.xorTest(lhs: "2576980379", rhs: "858993461", expecting: "2863311534") + self.xorTest(lhs: "2576980379", rhs: "-858993461", expecting: "-2863311536") + self.xorTest(lhs: "-2576980379", rhs: "0", expecting: "-2576980379") + self.xorTest(lhs: "-2576980379", rhs: "1", expecting: "-2576980380") + self.xorTest(lhs: "-2576980379", rhs: "-1", expecting: "2576980378") + self.xorTest(lhs: "-2576980379", rhs: "8589934592", expecting: "-11166914971") + self.xorTest(lhs: "-2576980379", rhs: "-8589934592", expecting: "6012954213") + self.xorTest(lhs: "-2576980379", rhs: "7730941133", expecting: "-5726623064") + self.xorTest(lhs: "-2576980379", rhs: "-7730941133", expecting: "5726623062") + self.xorTest(lhs: "-2576980379", rhs: "6871947674", expecting: "-4294967297") + self.xorTest(lhs: "-2576980379", rhs: "-6871947674", expecting: "4294967299") + self.xorTest(lhs: "-2576980379", rhs: "6012954215", expecting: "-8589934590") + self.xorTest(lhs: "-2576980379", rhs: "-6012954215", expecting: "8589934588") + self.xorTest(lhs: "-2576980379", rhs: "5153960756", expecting: "-7158278831") + self.xorTest(lhs: "-2576980379", rhs: "-5153960756", expecting: "7158278825") + self.xorTest(lhs: "-2576980379", rhs: "4294967297", expecting: "-6871947676") + self.xorTest(lhs: "-2576980379", rhs: "-4294967297", expecting: "6871947674") + self.xorTest(lhs: "-2576980379", rhs: "3435973838", expecting: "-1431655765") + self.xorTest(lhs: "-2576980379", rhs: "-3435973838", expecting: "1431655767") + self.xorTest(lhs: "-2576980379", rhs: "2576980379", expecting: "-2") + self.xorTest(lhs: "-2576980379", rhs: "-2576980379", expecting: "0") + self.xorTest(lhs: "-2576980379", rhs: "1717986920", expecting: "-4294967283") + self.xorTest(lhs: "-2576980379", rhs: "-1717986920", expecting: "4294967293") + self.xorTest(lhs: "-2576980379", rhs: "858993461", expecting: "-2863311536") + self.xorTest(lhs: "-2576980379", rhs: "-858993461", expecting: "2863311534") + self.xorTest(lhs: "1717986920", rhs: "0", expecting: "1717986920") + self.xorTest(lhs: "1717986920", rhs: "1", expecting: "1717986921") + self.xorTest(lhs: "1717986920", rhs: "-1", expecting: "-1717986921") + self.xorTest(lhs: "1717986920", rhs: "8589934592", expecting: "10307921512") + self.xorTest(lhs: "1717986920", rhs: "-8589934592", expecting: "-6871947672") + self.xorTest(lhs: "1717986920", rhs: "7730941133", expecting: "7158278821") + self.xorTest(lhs: "1717986920", rhs: "-7730941133", expecting: "-7158278821") + self.xorTest(lhs: "1717986920", rhs: "6871947674", expecting: "8589934578") + self.xorTest(lhs: "1717986920", rhs: "-6871947674", expecting: "-8589934578") + self.xorTest(lhs: "1717986920", rhs: "6012954215", expecting: "4294967311") + self.xorTest(lhs: "1717986920", rhs: "-6012954215", expecting: "-4294967311") + self.xorTest(lhs: "1717986920", rhs: "5153960756", expecting: "5726623068") + self.xorTest(lhs: "1717986920", rhs: "-5153960756", expecting: "-5726623068") + self.xorTest(lhs: "1717986920", rhs: "4294967297", expecting: "6012954217") + self.xorTest(lhs: "1717986920", rhs: "-4294967297", expecting: "-6012954217") + self.xorTest(lhs: "1717986920", rhs: "3435973838", expecting: "2863311526") + self.xorTest(lhs: "1717986920", rhs: "-3435973838", expecting: "-2863311526") + self.xorTest(lhs: "1717986920", rhs: "2576980379", expecting: "4294967283") + self.xorTest(lhs: "1717986920", rhs: "-2576980379", expecting: "-4294967283") + self.xorTest(lhs: "1717986920", rhs: "1717986920", expecting: "0") + self.xorTest(lhs: "1717986920", rhs: "-1717986920", expecting: "-16") + self.xorTest(lhs: "1717986920", rhs: "858993461", expecting: "1431655773") + self.xorTest(lhs: "1717986920", rhs: "-858993461", expecting: "-1431655773") + 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: "8589934592", expecting: "-10307921512") + self.xorTest(lhs: "-1717986920", rhs: "-8589934592", expecting: "6871947672") + self.xorTest(lhs: "-1717986920", rhs: "7730941133", expecting: "-7158278827") + self.xorTest(lhs: "-1717986920", rhs: "-7730941133", expecting: "7158278827") + self.xorTest(lhs: "-1717986920", rhs: "6871947674", expecting: "-8589934590") + self.xorTest(lhs: "-1717986920", rhs: "-6871947674", expecting: "8589934590") + self.xorTest(lhs: "-1717986920", rhs: "6012954215", expecting: "-4294967297") + self.xorTest(lhs: "-1717986920", rhs: "-6012954215", expecting: "4294967297") + self.xorTest(lhs: "-1717986920", rhs: "5153960756", expecting: "-5726623060") + self.xorTest(lhs: "-1717986920", rhs: "-5153960756", expecting: "5726623060") + self.xorTest(lhs: "-1717986920", rhs: "4294967297", expecting: "-6012954215") + self.xorTest(lhs: "-1717986920", rhs: "-4294967297", expecting: "6012954215") + self.xorTest(lhs: "-1717986920", rhs: "3435973838", expecting: "-2863311530") + self.xorTest(lhs: "-1717986920", rhs: "-3435973838", expecting: "2863311530") + self.xorTest(lhs: "-1717986920", rhs: "2576980379", expecting: "-4294967293") + self.xorTest(lhs: "-1717986920", rhs: "-2576980379", expecting: "4294967293") + self.xorTest(lhs: "-1717986920", rhs: "1717986920", expecting: "-16") + self.xorTest(lhs: "-1717986920", rhs: "-1717986920", expecting: "0") + self.xorTest(lhs: "-1717986920", rhs: "858993461", expecting: "-1431655763") + self.xorTest(lhs: "-1717986920", rhs: "-858993461", expecting: "1431655763") + self.xorTest(lhs: "858993461", rhs: "0", expecting: "858993461") + self.xorTest(lhs: "858993461", rhs: "1", expecting: "858993460") + self.xorTest(lhs: "858993461", rhs: "-1", expecting: "-858993462") + self.xorTest(lhs: "858993461", rhs: "8589934592", expecting: "9448928053") + self.xorTest(lhs: "858993461", rhs: "-8589934592", expecting: "-7730941131") + self.xorTest(lhs: "858993461", rhs: "7730941133", expecting: "8589934584") + self.xorTest(lhs: "858993461", rhs: "-7730941133", expecting: "-8589934586") + self.xorTest(lhs: "858993461", rhs: "6871947674", expecting: "7158278831") + self.xorTest(lhs: "858993461", rhs: "-6871947674", expecting: "-7158278829") + self.xorTest(lhs: "858993461", rhs: "6012954215", expecting: "5726623058") + self.xorTest(lhs: "858993461", rhs: "-6012954215", expecting: "-5726623060") + self.xorTest(lhs: "858993461", rhs: "5153960756", expecting: "4294967297") + self.xorTest(lhs: "858993461", rhs: "-5153960756", expecting: "-4294967303") + self.xorTest(lhs: "858993461", rhs: "4294967297", expecting: "5153960756") + self.xorTest(lhs: "858993461", rhs: "-4294967297", expecting: "-5153960758") + self.xorTest(lhs: "858993461", rhs: "3435973838", expecting: "4294967291") + self.xorTest(lhs: "858993461", rhs: "-3435973838", expecting: "-4294967289") + self.xorTest(lhs: "858993461", rhs: "2576980379", expecting: "2863311534") + self.xorTest(lhs: "858993461", rhs: "-2576980379", expecting: "-2863311536") + self.xorTest(lhs: "858993461", rhs: "1717986920", expecting: "1431655773") + self.xorTest(lhs: "858993461", rhs: "-1717986920", expecting: "-1431655763") + self.xorTest(lhs: "858993461", rhs: "858993461", expecting: "0") + self.xorTest(lhs: "858993461", rhs: "-858993461", expecting: "-2") + self.xorTest(lhs: "-858993461", rhs: "0", expecting: "-858993461") + self.xorTest(lhs: "-858993461", rhs: "1", expecting: "-858993462") + self.xorTest(lhs: "-858993461", rhs: "-1", expecting: "858993460") + self.xorTest(lhs: "-858993461", rhs: "8589934592", expecting: "-9448928053") + self.xorTest(lhs: "-858993461", rhs: "-8589934592", expecting: "7730941131") + self.xorTest(lhs: "-858993461", rhs: "7730941133", expecting: "-8589934586") + self.xorTest(lhs: "-858993461", rhs: "-7730941133", expecting: "8589934584") + self.xorTest(lhs: "-858993461", rhs: "6871947674", expecting: "-7158278831") + self.xorTest(lhs: "-858993461", rhs: "-6871947674", expecting: "7158278829") + self.xorTest(lhs: "-858993461", rhs: "6012954215", expecting: "-5726623060") + self.xorTest(lhs: "-858993461", rhs: "-6012954215", expecting: "5726623058") + self.xorTest(lhs: "-858993461", rhs: "5153960756", expecting: "-4294967297") + self.xorTest(lhs: "-858993461", rhs: "-5153960756", expecting: "4294967303") + self.xorTest(lhs: "-858993461", rhs: "4294967297", expecting: "-5153960758") + self.xorTest(lhs: "-858993461", rhs: "-4294967297", expecting: "5153960756") + self.xorTest(lhs: "-858993461", rhs: "3435973838", expecting: "-4294967291") + self.xorTest(lhs: "-858993461", rhs: "-3435973838", expecting: "4294967289") + self.xorTest(lhs: "-858993461", rhs: "2576980379", expecting: "-2863311536") + self.xorTest(lhs: "-858993461", rhs: "-2576980379", expecting: "2863311534") + self.xorTest(lhs: "-858993461", rhs: "1717986920", expecting: "-1431655773") + self.xorTest(lhs: "-858993461", rhs: "-1717986920", expecting: "1431655763") + self.xorTest(lhs: "-858993461", rhs: "858993461", expecting: "-2") + self.xorTest(lhs: "-858993461", rhs: "-858993461", expecting: "0") + } + + func test_xor_int_big() { + 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: "8589934592", rhs: "0", expecting: "8589934592") + self.xorTest(lhs: "8589934592", rhs: "1", expecting: "8589934593") + self.xorTest(lhs: "8589934592", rhs: "-1", expecting: "-8589934593") + self.xorTest(lhs: "8589934592", rhs: "18446744073709551615", expecting: "18446744065119617023") + self.xorTest(lhs: "8589934592", rhs: "-18446744073709551615", expecting: "-18446744065119617023") + self.xorTest(lhs: "8589934592", rhs: "18446744073709551617", expecting: "18446744082299486209") + self.xorTest(lhs: "8589934592", rhs: "-18446744073709551617", expecting: "-18446744082299486209") + self.xorTest(lhs: "8589934592", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351514067697666") + self.xorTest(lhs: "8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351514067697666") + self.xorTest(lhs: "8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915262451318789") + self.xorTest(lhs: "8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915262451318789") + self.xorTest(lhs: "8589934592", rhs: "18446744073709551623", expecting: "18446744082299486215") + self.xorTest(lhs: "8589934592", rhs: "-18446744073709551623", expecting: "-18446744082299486215") + self.xorTest(lhs: "8589934592", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815956325007362") + self.xorTest(lhs: "8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815956325007362") + self.xorTest(lhs: "8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095410803277835") + self.xorTest(lhs: "8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095410803277835") + self.xorTest(lhs: "8589934592", rhs: "18446744073709551629", expecting: "18446744082299486221") + self.xorTest(lhs: "8589934592", rhs: "-18446744073709551629", expecting: "-18446744082299486221") + self.xorTest(lhs: "8589934592", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280398582317058") + self.xorTest(lhs: "8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280398582317058") + self.xorTest(lhs: "8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275559155236881") + self.xorTest(lhs: "8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275559155236881") + self.xorTest(lhs: "8589934592", rhs: "18446744073709551635", expecting: "18446744082299486227") + self.xorTest(lhs: "8589934592", rhs: "-18446744073709551635", expecting: "-18446744082299486227") + self.xorTest(lhs: "-8589934592", rhs: "0", expecting: "-8589934592") + self.xorTest(lhs: "-8589934592", rhs: "1", expecting: "-8589934591") + self.xorTest(lhs: "-8589934592", rhs: "-1", expecting: "8589934591") + self.xorTest(lhs: "-8589934592", rhs: "18446744073709551615", expecting: "-18446744065119617025") + self.xorTest(lhs: "-8589934592", rhs: "-18446744073709551615", expecting: "18446744065119617025") + self.xorTest(lhs: "-8589934592", rhs: "18446744073709551617", expecting: "-18446744082299486207") + self.xorTest(lhs: "-8589934592", rhs: "-18446744073709551617", expecting: "18446744082299486207") + self.xorTest(lhs: "-8589934592", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351514067697662") + self.xorTest(lhs: "-8589934592", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351514067697662") + self.xorTest(lhs: "-8589934592", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915262451318779") + self.xorTest(lhs: "-8589934592", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915262451318779") + self.xorTest(lhs: "-8589934592", rhs: "18446744073709551623", expecting: "-18446744082299486201") + self.xorTest(lhs: "-8589934592", rhs: "-18446744073709551623", expecting: "18446744082299486201") + self.xorTest(lhs: "-8589934592", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815956325007358") + self.xorTest(lhs: "-8589934592", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815956325007358") + self.xorTest(lhs: "-8589934592", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095410803277813") + self.xorTest(lhs: "-8589934592", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095410803277813") + self.xorTest(lhs: "-8589934592", rhs: "18446744073709551629", expecting: "-18446744082299486195") + self.xorTest(lhs: "-8589934592", rhs: "-18446744073709551629", expecting: "18446744082299486195") + self.xorTest(lhs: "-8589934592", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280398582317054") + self.xorTest(lhs: "-8589934592", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280398582317054") + self.xorTest(lhs: "-8589934592", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275559155236847") + self.xorTest(lhs: "-8589934592", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275559155236847") + self.xorTest(lhs: "-8589934592", rhs: "18446744073709551635", expecting: "-18446744082299486189") + self.xorTest(lhs: "-8589934592", rhs: "-18446744073709551635", expecting: "18446744082299486189") + self.xorTest(lhs: "7730941133", rhs: "0", expecting: "7730941133") + self.xorTest(lhs: "7730941133", rhs: "1", expecting: "7730941132") + self.xorTest(lhs: "7730941133", rhs: "-1", expecting: "-7730941134") + self.xorTest(lhs: "7730941133", rhs: "18446744073709551615", expecting: "18446744065978610482") + self.xorTest(lhs: "7730941133", rhs: "-18446744073709551615", expecting: "-18446744065978610484") + self.xorTest(lhs: "7730941133", rhs: "18446744073709551617", expecting: "18446744081440492748") + self.xorTest(lhs: "7730941133", rhs: "-18446744073709551617", expecting: "-18446744081440492750") + self.xorTest(lhs: "7730941133", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351513208704207") + self.xorTest(lhs: "7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351513208704205") + self.xorTest(lhs: "7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915261592325320") + self.xorTest(lhs: "7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915261592325322") + self.xorTest(lhs: "7730941133", rhs: "18446744073709551623", expecting: "18446744081440492746") + self.xorTest(lhs: "7730941133", rhs: "-18446744073709551623", expecting: "-18446744081440492748") + self.xorTest(lhs: "7730941133", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815955466013903") + self.xorTest(lhs: "7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815955466013901") + self.xorTest(lhs: "7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095409944284358") + self.xorTest(lhs: "7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095409944284360") + self.xorTest(lhs: "7730941133", rhs: "18446744073709551629", expecting: "18446744081440492736") + self.xorTest(lhs: "7730941133", rhs: "-18446744073709551629", expecting: "-18446744081440492738") + self.xorTest(lhs: "7730941133", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280397723323599") + self.xorTest(lhs: "7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280397723323597") + self.xorTest(lhs: "7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275558296243420") + self.xorTest(lhs: "7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275558296243422") + self.xorTest(lhs: "7730941133", rhs: "18446744073709551635", expecting: "18446744081440492766") + self.xorTest(lhs: "7730941133", rhs: "-18446744073709551635", expecting: "-18446744081440492768") + self.xorTest(lhs: "-7730941133", rhs: "0", expecting: "-7730941133") + self.xorTest(lhs: "-7730941133", rhs: "1", expecting: "-7730941134") + self.xorTest(lhs: "-7730941133", rhs: "-1", expecting: "7730941132") + self.xorTest(lhs: "-7730941133", rhs: "18446744073709551615", expecting: "-18446744065978610484") + self.xorTest(lhs: "-7730941133", rhs: "-18446744073709551615", expecting: "18446744065978610482") + self.xorTest(lhs: "-7730941133", rhs: "18446744073709551617", expecting: "-18446744081440492750") + self.xorTest(lhs: "-7730941133", rhs: "-18446744073709551617", expecting: "18446744081440492748") + self.xorTest(lhs: "-7730941133", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351513208704207") + self.xorTest(lhs: "-7730941133", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351513208704205") + self.xorTest(lhs: "-7730941133", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915261592325322") + self.xorTest(lhs: "-7730941133", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915261592325320") + self.xorTest(lhs: "-7730941133", rhs: "18446744073709551623", expecting: "-18446744081440492748") + self.xorTest(lhs: "-7730941133", rhs: "-18446744073709551623", expecting: "18446744081440492746") + self.xorTest(lhs: "-7730941133", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815955466013903") + self.xorTest(lhs: "-7730941133", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815955466013901") + self.xorTest(lhs: "-7730941133", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095409944284360") + self.xorTest(lhs: "-7730941133", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095409944284358") + self.xorTest(lhs: "-7730941133", rhs: "18446744073709551629", expecting: "-18446744081440492738") + self.xorTest(lhs: "-7730941133", rhs: "-18446744073709551629", expecting: "18446744081440492736") + self.xorTest(lhs: "-7730941133", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280397723323599") + self.xorTest(lhs: "-7730941133", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280397723323597") + self.xorTest(lhs: "-7730941133", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275558296243422") + self.xorTest(lhs: "-7730941133", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275558296243420") + self.xorTest(lhs: "-7730941133", rhs: "18446744073709551635", expecting: "-18446744081440492768") + self.xorTest(lhs: "-7730941133", rhs: "-18446744073709551635", expecting: "18446744081440492766") + self.xorTest(lhs: "6871947674", rhs: "0", expecting: "6871947674") + self.xorTest(lhs: "6871947674", rhs: "1", expecting: "6871947675") + self.xorTest(lhs: "6871947674", rhs: "-1", expecting: "-6871947675") + self.xorTest(lhs: "6871947674", rhs: "18446744073709551615", expecting: "18446744066837603941") + self.xorTest(lhs: "6871947674", rhs: "-18446744073709551615", expecting: "-18446744066837603941") + self.xorTest(lhs: "6871947674", rhs: "18446744073709551617", expecting: "18446744080581499291") + self.xorTest(lhs: "6871947674", rhs: "-18446744073709551617", expecting: "-18446744080581499291") + self.xorTest(lhs: "6871947674", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351512349710744") + self.xorTest(lhs: "6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351512349710748") + self.xorTest(lhs: "6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915260733331871") + self.xorTest(lhs: "6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915260733331871") + self.xorTest(lhs: "6871947674", rhs: "18446744073709551623", expecting: "18446744080581499293") + self.xorTest(lhs: "6871947674", rhs: "-18446744073709551623", expecting: "-18446744080581499293") + self.xorTest(lhs: "6871947674", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815954607020440") + self.xorTest(lhs: "6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815954607020444") + self.xorTest(lhs: "6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095409085290897") + self.xorTest(lhs: "6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095409085290897") + self.xorTest(lhs: "6871947674", rhs: "18446744073709551629", expecting: "18446744080581499287") + self.xorTest(lhs: "6871947674", rhs: "-18446744073709551629", expecting: "-18446744080581499287") + self.xorTest(lhs: "6871947674", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280396864330136") + self.xorTest(lhs: "6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280396864330140") + self.xorTest(lhs: "6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275557437249931") + self.xorTest(lhs: "6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275557437249931") + self.xorTest(lhs: "6871947674", rhs: "18446744073709551635", expecting: "18446744080581499273") + self.xorTest(lhs: "6871947674", rhs: "-18446744073709551635", expecting: "-18446744080581499273") + self.xorTest(lhs: "-6871947674", rhs: "0", expecting: "-6871947674") + self.xorTest(lhs: "-6871947674", rhs: "1", expecting: "-6871947673") + self.xorTest(lhs: "-6871947674", rhs: "-1", expecting: "6871947673") + self.xorTest(lhs: "-6871947674", rhs: "18446744073709551615", expecting: "-18446744066837603943") + self.xorTest(lhs: "-6871947674", rhs: "-18446744073709551615", expecting: "18446744066837603943") + self.xorTest(lhs: "-6871947674", rhs: "18446744073709551617", expecting: "-18446744080581499289") + self.xorTest(lhs: "-6871947674", rhs: "-18446744073709551617", expecting: "18446744080581499289") + self.xorTest(lhs: "-6871947674", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351512349710748") + self.xorTest(lhs: "-6871947674", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351512349710744") + self.xorTest(lhs: "-6871947674", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915260733331869") + self.xorTest(lhs: "-6871947674", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915260733331869") + self.xorTest(lhs: "-6871947674", rhs: "18446744073709551623", expecting: "-18446744080581499295") + self.xorTest(lhs: "-6871947674", rhs: "-18446744073709551623", expecting: "18446744080581499295") + self.xorTest(lhs: "-6871947674", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815954607020444") + self.xorTest(lhs: "-6871947674", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815954607020440") + self.xorTest(lhs: "-6871947674", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095409085290899") + self.xorTest(lhs: "-6871947674", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095409085290899") + self.xorTest(lhs: "-6871947674", rhs: "18446744073709551629", expecting: "-18446744080581499285") + self.xorTest(lhs: "-6871947674", rhs: "-18446744073709551629", expecting: "18446744080581499285") + self.xorTest(lhs: "-6871947674", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280396864330140") + self.xorTest(lhs: "-6871947674", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280396864330136") + self.xorTest(lhs: "-6871947674", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275557437249929") + self.xorTest(lhs: "-6871947674", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275557437249929") + self.xorTest(lhs: "-6871947674", rhs: "18446744073709551635", expecting: "-18446744080581499275") + self.xorTest(lhs: "-6871947674", rhs: "-18446744073709551635", expecting: "18446744080581499275") + self.xorTest(lhs: "6012954215", rhs: "0", expecting: "6012954215") + self.xorTest(lhs: "6012954215", rhs: "1", expecting: "6012954214") + self.xorTest(lhs: "6012954215", rhs: "-1", expecting: "-6012954216") + self.xorTest(lhs: "6012954215", rhs: "18446744073709551615", expecting: "18446744067696597400") + self.xorTest(lhs: "6012954215", rhs: "-18446744073709551615", expecting: "-18446744067696597402") + self.xorTest(lhs: "6012954215", rhs: "18446744073709551617", expecting: "18446744079722505830") + self.xorTest(lhs: "6012954215", rhs: "-18446744073709551617", expecting: "-18446744079722505832") + self.xorTest(lhs: "6012954215", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351511490717285") + self.xorTest(lhs: "6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351511490717287") + self.xorTest(lhs: "6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915259874338402") + self.xorTest(lhs: "6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915259874338404") + self.xorTest(lhs: "6012954215", rhs: "18446744073709551623", expecting: "18446744079722505824") + self.xorTest(lhs: "6012954215", rhs: "-18446744073709551623", expecting: "-18446744079722505826") + self.xorTest(lhs: "6012954215", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815953748026981") + self.xorTest(lhs: "6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815953748026983") + self.xorTest(lhs: "6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095408226297452") + self.xorTest(lhs: "6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095408226297454") + self.xorTest(lhs: "6012954215", rhs: "18446744073709551629", expecting: "18446744079722505834") + self.xorTest(lhs: "6012954215", rhs: "-18446744073709551629", expecting: "-18446744079722505836") + self.xorTest(lhs: "6012954215", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280396005336677") + self.xorTest(lhs: "6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280396005336679") + self.xorTest(lhs: "6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275556578256502") + self.xorTest(lhs: "6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275556578256504") + self.xorTest(lhs: "6012954215", rhs: "18446744073709551635", expecting: "18446744079722505844") + self.xorTest(lhs: "6012954215", rhs: "-18446744073709551635", expecting: "-18446744079722505846") + self.xorTest(lhs: "-6012954215", rhs: "0", expecting: "-6012954215") + self.xorTest(lhs: "-6012954215", rhs: "1", expecting: "-6012954216") + self.xorTest(lhs: "-6012954215", rhs: "-1", expecting: "6012954214") + self.xorTest(lhs: "-6012954215", rhs: "18446744073709551615", expecting: "-18446744067696597402") + self.xorTest(lhs: "-6012954215", rhs: "-18446744073709551615", expecting: "18446744067696597400") + self.xorTest(lhs: "-6012954215", rhs: "18446744073709551617", expecting: "-18446744079722505832") + self.xorTest(lhs: "-6012954215", rhs: "-18446744073709551617", expecting: "18446744079722505830") + self.xorTest(lhs: "-6012954215", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351511490717285") + self.xorTest(lhs: "-6012954215", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351511490717287") + self.xorTest(lhs: "-6012954215", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915259874338404") + self.xorTest(lhs: "-6012954215", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915259874338402") + self.xorTest(lhs: "-6012954215", rhs: "18446744073709551623", expecting: "-18446744079722505826") + self.xorTest(lhs: "-6012954215", rhs: "-18446744073709551623", expecting: "18446744079722505824") + self.xorTest(lhs: "-6012954215", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815953748026981") + self.xorTest(lhs: "-6012954215", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815953748026983") + self.xorTest(lhs: "-6012954215", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095408226297454") + self.xorTest(lhs: "-6012954215", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095408226297452") + self.xorTest(lhs: "-6012954215", rhs: "18446744073709551629", expecting: "-18446744079722505836") + self.xorTest(lhs: "-6012954215", rhs: "-18446744073709551629", expecting: "18446744079722505834") + self.xorTest(lhs: "-6012954215", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280396005336677") + self.xorTest(lhs: "-6012954215", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280396005336679") + self.xorTest(lhs: "-6012954215", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275556578256504") + self.xorTest(lhs: "-6012954215", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275556578256502") + self.xorTest(lhs: "-6012954215", rhs: "18446744073709551635", expecting: "-18446744079722505846") + self.xorTest(lhs: "-6012954215", rhs: "-18446744073709551635", expecting: "18446744079722505844") + self.xorTest(lhs: "5153960756", rhs: "0", expecting: "5153960756") + self.xorTest(lhs: "5153960756", rhs: "1", expecting: "5153960757") + self.xorTest(lhs: "5153960756", rhs: "-1", expecting: "-5153960757") + self.xorTest(lhs: "5153960756", rhs: "18446744073709551615", expecting: "18446744068555590859") + self.xorTest(lhs: "5153960756", rhs: "-18446744073709551615", expecting: "-18446744068555590859") + self.xorTest(lhs: "5153960756", rhs: "18446744073709551617", expecting: "18446744078863512373") + self.xorTest(lhs: "5153960756", rhs: "-18446744073709551617", expecting: "-18446744078863512373") + self.xorTest(lhs: "5153960756", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351510631723830") + self.xorTest(lhs: "5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351510631723830") + self.xorTest(lhs: "5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915259015344945") + self.xorTest(lhs: "5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915259015344945") + self.xorTest(lhs: "5153960756", rhs: "18446744073709551623", expecting: "18446744078863512371") + self.xorTest(lhs: "5153960756", rhs: "-18446744073709551623", expecting: "-18446744078863512371") + self.xorTest(lhs: "5153960756", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815952889033526") + self.xorTest(lhs: "5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815952889033526") + self.xorTest(lhs: "5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095407367303999") + self.xorTest(lhs: "5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095407367303999") + self.xorTest(lhs: "5153960756", rhs: "18446744073709551629", expecting: "18446744078863512377") + self.xorTest(lhs: "5153960756", rhs: "-18446744073709551629", expecting: "-18446744078863512377") + self.xorTest(lhs: "5153960756", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280395146343222") + self.xorTest(lhs: "5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280395146343222") + self.xorTest(lhs: "5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275555719263013") + self.xorTest(lhs: "5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275555719263013") + self.xorTest(lhs: "5153960756", rhs: "18446744073709551635", expecting: "18446744078863512359") + self.xorTest(lhs: "5153960756", rhs: "-18446744073709551635", expecting: "-18446744078863512359") + self.xorTest(lhs: "-5153960756", rhs: "0", expecting: "-5153960756") + self.xorTest(lhs: "-5153960756", rhs: "1", expecting: "-5153960755") + self.xorTest(lhs: "-5153960756", rhs: "-1", expecting: "5153960755") + self.xorTest(lhs: "-5153960756", rhs: "18446744073709551615", expecting: "-18446744068555590861") + self.xorTest(lhs: "-5153960756", rhs: "-18446744073709551615", expecting: "18446744068555590861") + self.xorTest(lhs: "-5153960756", rhs: "18446744073709551617", expecting: "-18446744078863512371") + self.xorTest(lhs: "-5153960756", rhs: "-18446744073709551617", expecting: "18446744078863512371") + self.xorTest(lhs: "-5153960756", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351510631723826") + self.xorTest(lhs: "-5153960756", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351510631723826") + self.xorTest(lhs: "-5153960756", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915259015344951") + self.xorTest(lhs: "-5153960756", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915259015344951") + self.xorTest(lhs: "-5153960756", rhs: "18446744073709551623", expecting: "-18446744078863512373") + self.xorTest(lhs: "-5153960756", rhs: "-18446744073709551623", expecting: "18446744078863512373") + self.xorTest(lhs: "-5153960756", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815952889033522") + self.xorTest(lhs: "-5153960756", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815952889033522") + self.xorTest(lhs: "-5153960756", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095407367303993") + self.xorTest(lhs: "-5153960756", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095407367303993") + self.xorTest(lhs: "-5153960756", rhs: "18446744073709551629", expecting: "-18446744078863512383") + self.xorTest(lhs: "-5153960756", rhs: "-18446744073709551629", expecting: "18446744078863512383") + self.xorTest(lhs: "-5153960756", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280395146343218") + self.xorTest(lhs: "-5153960756", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280395146343218") + self.xorTest(lhs: "-5153960756", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275555719263011") + self.xorTest(lhs: "-5153960756", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275555719263011") + self.xorTest(lhs: "-5153960756", rhs: "18446744073709551635", expecting: "-18446744078863512353") + self.xorTest(lhs: "-5153960756", rhs: "-18446744073709551635", expecting: "18446744078863512353") + self.xorTest(lhs: "4294967297", rhs: "0", expecting: "4294967297") + self.xorTest(lhs: "4294967297", rhs: "1", expecting: "4294967296") + self.xorTest(lhs: "4294967297", rhs: "-1", expecting: "-4294967298") + self.xorTest(lhs: "4294967297", rhs: "18446744073709551615", expecting: "18446744069414584318") + self.xorTest(lhs: "4294967297", rhs: "-18446744073709551615", expecting: "-18446744069414584320") + self.xorTest(lhs: "4294967297", rhs: "18446744073709551617", expecting: "18446744078004518912") + self.xorTest(lhs: "4294967297", rhs: "-18446744073709551617", expecting: "-18446744078004518914") + self.xorTest(lhs: "4294967297", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351509772730371") + self.xorTest(lhs: "4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351509772730369") + self.xorTest(lhs: "4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915258156351492") + self.xorTest(lhs: "4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915258156351494") + self.xorTest(lhs: "4294967297", rhs: "18446744073709551623", expecting: "18446744078004518918") + self.xorTest(lhs: "4294967297", rhs: "-18446744073709551623", expecting: "-18446744078004518920") + self.xorTest(lhs: "4294967297", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815952030040067") + self.xorTest(lhs: "4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815952030040065") + self.xorTest(lhs: "4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095406508310538") + self.xorTest(lhs: "4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095406508310540") + self.xorTest(lhs: "4294967297", rhs: "18446744073709551629", expecting: "18446744078004518924") + self.xorTest(lhs: "4294967297", rhs: "-18446744073709551629", expecting: "-18446744078004518926") + self.xorTest(lhs: "4294967297", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280394287349763") + self.xorTest(lhs: "4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280394287349761") + self.xorTest(lhs: "4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275554860269584") + self.xorTest(lhs: "4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275554860269586") + self.xorTest(lhs: "4294967297", rhs: "18446744073709551635", expecting: "18446744078004518930") + self.xorTest(lhs: "4294967297", rhs: "-18446744073709551635", expecting: "-18446744078004518932") + self.xorTest(lhs: "-4294967297", rhs: "0", expecting: "-4294967297") + self.xorTest(lhs: "-4294967297", rhs: "1", expecting: "-4294967298") + self.xorTest(lhs: "-4294967297", rhs: "-1", expecting: "4294967296") + self.xorTest(lhs: "-4294967297", rhs: "18446744073709551615", expecting: "-18446744069414584320") + self.xorTest(lhs: "-4294967297", rhs: "-18446744073709551615", expecting: "18446744069414584318") + self.xorTest(lhs: "-4294967297", rhs: "18446744073709551617", expecting: "-18446744078004518914") + self.xorTest(lhs: "-4294967297", rhs: "-18446744073709551617", expecting: "18446744078004518912") + self.xorTest(lhs: "-4294967297", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351509772730371") + self.xorTest(lhs: "-4294967297", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351509772730369") + self.xorTest(lhs: "-4294967297", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915258156351494") + self.xorTest(lhs: "-4294967297", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915258156351492") + self.xorTest(lhs: "-4294967297", rhs: "18446744073709551623", expecting: "-18446744078004518920") + self.xorTest(lhs: "-4294967297", rhs: "-18446744073709551623", expecting: "18446744078004518918") + self.xorTest(lhs: "-4294967297", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815952030040067") + self.xorTest(lhs: "-4294967297", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815952030040065") + self.xorTest(lhs: "-4294967297", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095406508310540") + self.xorTest(lhs: "-4294967297", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095406508310538") + self.xorTest(lhs: "-4294967297", rhs: "18446744073709551629", expecting: "-18446744078004518926") + self.xorTest(lhs: "-4294967297", rhs: "-18446744073709551629", expecting: "18446744078004518924") + self.xorTest(lhs: "-4294967297", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280394287349763") + self.xorTest(lhs: "-4294967297", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280394287349761") + self.xorTest(lhs: "-4294967297", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275554860269586") + self.xorTest(lhs: "-4294967297", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275554860269584") + self.xorTest(lhs: "-4294967297", rhs: "18446744073709551635", expecting: "-18446744078004518932") + self.xorTest(lhs: "-4294967297", rhs: "-18446744073709551635", expecting: "18446744078004518930") + self.xorTest(lhs: "3435973838", rhs: "0", expecting: "3435973838") + self.xorTest(lhs: "3435973838", rhs: "1", expecting: "3435973839") + self.xorTest(lhs: "3435973838", rhs: "-1", expecting: "-3435973839") + self.xorTest(lhs: "3435973838", rhs: "18446744073709551615", expecting: "18446744070273577777") + self.xorTest(lhs: "3435973838", rhs: "-18446744073709551615", expecting: "-18446744070273577777") + self.xorTest(lhs: "3435973838", rhs: "18446744073709551617", expecting: "18446744077145525455") + self.xorTest(lhs: "3435973838", rhs: "-18446744073709551617", expecting: "-18446744077145525455") + self.xorTest(lhs: "3435973838", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351508913736908") + self.xorTest(lhs: "3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351508913736912") + self.xorTest(lhs: "3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915257297358027") + self.xorTest(lhs: "3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915257297358027") + self.xorTest(lhs: "3435973838", rhs: "18446744073709551623", expecting: "18446744077145525449") + self.xorTest(lhs: "3435973838", rhs: "-18446744073709551623", expecting: "-18446744077145525449") + self.xorTest(lhs: "3435973838", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815951171046604") + self.xorTest(lhs: "3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815951171046608") + self.xorTest(lhs: "3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095405649317061") + self.xorTest(lhs: "3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095405649317061") + self.xorTest(lhs: "3435973838", rhs: "18446744073709551629", expecting: "18446744077145525443") + self.xorTest(lhs: "3435973838", rhs: "-18446744073709551629", expecting: "-18446744077145525443") + self.xorTest(lhs: "3435973838", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280393428356300") + self.xorTest(lhs: "3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280393428356304") + self.xorTest(lhs: "3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275554001276127") + self.xorTest(lhs: "3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275554001276127") + self.xorTest(lhs: "3435973838", rhs: "18446744073709551635", expecting: "18446744077145525469") + self.xorTest(lhs: "3435973838", rhs: "-18446744073709551635", expecting: "-18446744077145525469") + self.xorTest(lhs: "-3435973838", rhs: "0", expecting: "-3435973838") + self.xorTest(lhs: "-3435973838", rhs: "1", expecting: "-3435973837") + self.xorTest(lhs: "-3435973838", rhs: "-1", expecting: "3435973837") + self.xorTest(lhs: "-3435973838", rhs: "18446744073709551615", expecting: "-18446744070273577779") + self.xorTest(lhs: "-3435973838", rhs: "-18446744073709551615", expecting: "18446744070273577779") + self.xorTest(lhs: "-3435973838", rhs: "18446744073709551617", expecting: "-18446744077145525453") + self.xorTest(lhs: "-3435973838", rhs: "-18446744073709551617", expecting: "18446744077145525453") + self.xorTest(lhs: "-3435973838", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351508913736912") + self.xorTest(lhs: "-3435973838", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351508913736908") + self.xorTest(lhs: "-3435973838", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915257297358025") + self.xorTest(lhs: "-3435973838", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915257297358025") + self.xorTest(lhs: "-3435973838", rhs: "18446744073709551623", expecting: "-18446744077145525451") + self.xorTest(lhs: "-3435973838", rhs: "-18446744073709551623", expecting: "18446744077145525451") + self.xorTest(lhs: "-3435973838", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815951171046608") + self.xorTest(lhs: "-3435973838", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815951171046604") + self.xorTest(lhs: "-3435973838", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095405649317063") + self.xorTest(lhs: "-3435973838", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095405649317063") + self.xorTest(lhs: "-3435973838", rhs: "18446744073709551629", expecting: "-18446744077145525441") + self.xorTest(lhs: "-3435973838", rhs: "-18446744073709551629", expecting: "18446744077145525441") + self.xorTest(lhs: "-3435973838", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280393428356304") + self.xorTest(lhs: "-3435973838", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280393428356300") + self.xorTest(lhs: "-3435973838", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275554001276125") + self.xorTest(lhs: "-3435973838", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275554001276125") + self.xorTest(lhs: "-3435973838", rhs: "18446744073709551635", expecting: "-18446744077145525471") + self.xorTest(lhs: "-3435973838", rhs: "-18446744073709551635", expecting: "18446744077145525471") + self.xorTest(lhs: "2576980379", rhs: "0", expecting: "2576980379") + self.xorTest(lhs: "2576980379", rhs: "1", expecting: "2576980378") + self.xorTest(lhs: "2576980379", rhs: "-1", expecting: "-2576980380") + self.xorTest(lhs: "2576980379", rhs: "18446744073709551615", expecting: "18446744071132571236") + self.xorTest(lhs: "2576980379", rhs: "-18446744073709551615", expecting: "-18446744071132571238") + self.xorTest(lhs: "2576980379", rhs: "18446744073709551617", expecting: "18446744076286531994") + self.xorTest(lhs: "2576980379", rhs: "-18446744073709551617", expecting: "-18446744076286531996") + self.xorTest(lhs: "2576980379", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351508054743449") + self.xorTest(lhs: "2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351508054743451") + self.xorTest(lhs: "2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915256438364574") + self.xorTest(lhs: "2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915256438364576") + self.xorTest(lhs: "2576980379", rhs: "18446744073709551623", expecting: "18446744076286531996") + self.xorTest(lhs: "2576980379", rhs: "-18446744073709551623", expecting: "-18446744076286531998") + self.xorTest(lhs: "2576980379", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815950312053145") + self.xorTest(lhs: "2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815950312053147") + self.xorTest(lhs: "2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404790323600") + self.xorTest(lhs: "2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404790323602") + self.xorTest(lhs: "2576980379", rhs: "18446744073709551629", expecting: "18446744076286531990") + self.xorTest(lhs: "2576980379", rhs: "-18446744073709551629", expecting: "-18446744076286531992") + self.xorTest(lhs: "2576980379", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280392569362841") + self.xorTest(lhs: "2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280392569362843") + self.xorTest(lhs: "2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275553142282634") + self.xorTest(lhs: "2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275553142282636") + self.xorTest(lhs: "2576980379", rhs: "18446744073709551635", expecting: "18446744076286531976") + self.xorTest(lhs: "2576980379", rhs: "-18446744073709551635", expecting: "-18446744076286531978") + self.xorTest(lhs: "-2576980379", rhs: "0", expecting: "-2576980379") + self.xorTest(lhs: "-2576980379", rhs: "1", expecting: "-2576980380") + self.xorTest(lhs: "-2576980379", rhs: "-1", expecting: "2576980378") + self.xorTest(lhs: "-2576980379", rhs: "18446744073709551615", expecting: "-18446744071132571238") + self.xorTest(lhs: "-2576980379", rhs: "-18446744073709551615", expecting: "18446744071132571236") + self.xorTest(lhs: "-2576980379", rhs: "18446744073709551617", expecting: "-18446744076286531996") + self.xorTest(lhs: "-2576980379", rhs: "-18446744073709551617", expecting: "18446744076286531994") + self.xorTest(lhs: "-2576980379", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351508054743449") + self.xorTest(lhs: "-2576980379", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351508054743451") + self.xorTest(lhs: "-2576980379", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915256438364576") + self.xorTest(lhs: "-2576980379", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915256438364574") + self.xorTest(lhs: "-2576980379", rhs: "18446744073709551623", expecting: "-18446744076286531998") + self.xorTest(lhs: "-2576980379", rhs: "-18446744073709551623", expecting: "18446744076286531996") + self.xorTest(lhs: "-2576980379", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815950312053145") + self.xorTest(lhs: "-2576980379", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815950312053147") + self.xorTest(lhs: "-2576980379", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095404790323602") + self.xorTest(lhs: "-2576980379", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095404790323600") + self.xorTest(lhs: "-2576980379", rhs: "18446744073709551629", expecting: "-18446744076286531992") + self.xorTest(lhs: "-2576980379", rhs: "-18446744073709551629", expecting: "18446744076286531990") + self.xorTest(lhs: "-2576980379", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280392569362841") + self.xorTest(lhs: "-2576980379", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280392569362843") + self.xorTest(lhs: "-2576980379", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275553142282636") + self.xorTest(lhs: "-2576980379", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275553142282634") + self.xorTest(lhs: "-2576980379", rhs: "18446744073709551635", expecting: "-18446744076286531978") + self.xorTest(lhs: "-2576980379", rhs: "-18446744073709551635", expecting: "18446744076286531976") + self.xorTest(lhs: "1717986920", rhs: "0", expecting: "1717986920") + self.xorTest(lhs: "1717986920", rhs: "1", expecting: "1717986921") + self.xorTest(lhs: "1717986920", rhs: "-1", expecting: "-1717986921") + self.xorTest(lhs: "1717986920", rhs: "18446744073709551615", expecting: "18446744071991564695") + self.xorTest(lhs: "1717986920", rhs: "-18446744073709551615", expecting: "-18446744071991564695") + self.xorTest(lhs: "1717986920", rhs: "18446744073709551617", expecting: "18446744075427538537") + self.xorTest(lhs: "1717986920", rhs: "-18446744073709551617", expecting: "-18446744075427538537") + self.xorTest(lhs: "1717986920", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351507195749994") + self.xorTest(lhs: "1717986920", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351507195749994") + self.xorTest(lhs: "1717986920", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915255579371117") + self.xorTest(lhs: "1717986920", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915255579371117") + self.xorTest(lhs: "1717986920", rhs: "18446744073709551623", expecting: "18446744075427538543") + self.xorTest(lhs: "1717986920", rhs: "-18446744073709551623", expecting: "-18446744075427538543") + self.xorTest(lhs: "1717986920", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815949453059690") + self.xorTest(lhs: "1717986920", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815949453059690") + self.xorTest(lhs: "1717986920", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403931330147") + self.xorTest(lhs: "1717986920", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403931330147") + self.xorTest(lhs: "1717986920", rhs: "18446744073709551629", expecting: "18446744075427538533") + self.xorTest(lhs: "1717986920", rhs: "-18446744073709551629", expecting: "-18446744075427538533") + self.xorTest(lhs: "1717986920", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280391710369386") + self.xorTest(lhs: "1717986920", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280391710369386") + self.xorTest(lhs: "1717986920", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275552283289209") + self.xorTest(lhs: "1717986920", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275552283289209") + self.xorTest(lhs: "1717986920", rhs: "18446744073709551635", expecting: "18446744075427538555") + self.xorTest(lhs: "1717986920", rhs: "-18446744073709551635", expecting: "-18446744075427538555") + 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: "858993461", rhs: "0", expecting: "858993461") + self.xorTest(lhs: "858993461", rhs: "1", expecting: "858993460") + self.xorTest(lhs: "858993461", rhs: "-1", expecting: "-858993462") + self.xorTest(lhs: "858993461", rhs: "18446744073709551615", expecting: "18446744072850558154") + self.xorTest(lhs: "858993461", rhs: "-18446744073709551615", expecting: "-18446744072850558156") + self.xorTest(lhs: "858993461", rhs: "18446744073709551617", expecting: "18446744074568545076") + self.xorTest(lhs: "858993461", rhs: "-18446744073709551617", expecting: "-18446744074568545078") + self.xorTest(lhs: "858993461", rhs: "340282366920938463481821351505477763074", expecting: "340282366920938463481821351506336756535") + self.xorTest(lhs: "858993461", rhs: "-340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506336756533") + self.xorTest(lhs: "858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254720377648") + self.xorTest(lhs: "858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254720377650") + self.xorTest(lhs: "858993461", rhs: "18446744073709551623", expecting: "18446744074568545074") + self.xorTest(lhs: "858993461", rhs: "-18446744073709551623", expecting: "-18446744074568545076") + self.xorTest(lhs: "858993461", rhs: "340282366920938463592501815947735072770", expecting: "340282366920938463592501815948594066231") + self.xorTest(lhs: "858993461", rhs: "-340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948594066229") + self.xorTest(lhs: "858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403072336702") + self.xorTest(lhs: "858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403072336704") + self.xorTest(lhs: "858993461", rhs: "18446744073709551629", expecting: "18446744074568545080") + self.xorTest(lhs: "858993461", rhs: "-18446744073709551629", expecting: "-18446744074568545082") + self.xorTest(lhs: "858993461", rhs: "340282366920938463703182280389992382466", expecting: "340282366920938463703182280390851375927") + self.xorTest(lhs: "858993461", rhs: "-340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390851375925") + self.xorTest(lhs: "858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551424295716") + self.xorTest(lhs: "858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551424295718") + self.xorTest(lhs: "858993461", rhs: "18446744073709551635", expecting: "18446744074568545062") + self.xorTest(lhs: "858993461", rhs: "-18446744073709551635", expecting: "-18446744074568545064") + self.xorTest(lhs: "-858993461", rhs: "0", expecting: "-858993461") + self.xorTest(lhs: "-858993461", rhs: "1", expecting: "-858993462") + self.xorTest(lhs: "-858993461", rhs: "-1", expecting: "858993460") + self.xorTest(lhs: "-858993461", rhs: "18446744073709551615", expecting: "-18446744072850558156") + self.xorTest(lhs: "-858993461", rhs: "-18446744073709551615", expecting: "18446744072850558154") + self.xorTest(lhs: "-858993461", rhs: "18446744073709551617", expecting: "-18446744074568545078") + self.xorTest(lhs: "-858993461", rhs: "-18446744073709551617", expecting: "18446744074568545076") + self.xorTest(lhs: "-858993461", rhs: "340282366920938463481821351505477763074", expecting: "-340282366920938463481821351506336756535") + self.xorTest(lhs: "-858993461", rhs: "-340282366920938463481821351505477763074", expecting: "340282366920938463481821351506336756533") + self.xorTest(lhs: "-858993461", rhs: "6277101735386680764516354157049543343010657915253861384197", expecting: "-6277101735386680764516354157049543343010657915254720377650") + self.xorTest(lhs: "-858993461", rhs: "-6277101735386680764516354157049543343010657915253861384197", expecting: "6277101735386680764516354157049543343010657915254720377648") + self.xorTest(lhs: "-858993461", rhs: "18446744073709551623", expecting: "-18446744074568545076") + self.xorTest(lhs: "-858993461", rhs: "-18446744073709551623", expecting: "18446744074568545074") + self.xorTest(lhs: "-858993461", rhs: "340282366920938463592501815947735072770", expecting: "-340282366920938463592501815948594066231") + self.xorTest(lhs: "-858993461", rhs: "-340282366920938463592501815947735072770", expecting: "340282366920938463592501815948594066229") + self.xorTest(lhs: "-858993461", rhs: "6277101735386680766558048358575174123680225095402213343243", expecting: "-6277101735386680766558048358575174123680225095403072336704") + self.xorTest(lhs: "-858993461", rhs: "-6277101735386680766558048358575174123680225095402213343243", expecting: "6277101735386680766558048358575174123680225095403072336702") + self.xorTest(lhs: "-858993461", rhs: "18446744073709551629", expecting: "-18446744074568545082") + self.xorTest(lhs: "-858993461", rhs: "-18446744073709551629", expecting: "18446744074568545080") + self.xorTest(lhs: "-858993461", rhs: "340282366920938463703182280389992382466", expecting: "-340282366920938463703182280390851375927") + self.xorTest(lhs: "-858993461", rhs: "-340282366920938463703182280389992382466", expecting: "340282366920938463703182280390851375925") + self.xorTest(lhs: "-858993461", rhs: "6277101735386680768599742560100804904349792275550565302289", expecting: "-6277101735386680768599742560100804904349792275551424295718") + self.xorTest(lhs: "-858993461", rhs: "-6277101735386680768599742560100804904349792275550565302289", expecting: "6277101735386680768599742560100804904349792275551424295716") + self.xorTest(lhs: "-858993461", rhs: "18446744073709551635", expecting: "-18446744074568545064") + self.xorTest(lhs: "-858993461", rhs: "-18446744073709551635", expecting: "18446744074568545062") + } + + func test_xor_big_int() { + 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: "8589934592", expecting: "8589934592") + self.xorTest(lhs: "0", rhs: "-8589934592", expecting: "-8589934592") + self.xorTest(lhs: "0", rhs: "7730941133", expecting: "7730941133") + self.xorTest(lhs: "0", rhs: "-7730941133", expecting: "-7730941133") + self.xorTest(lhs: "0", rhs: "6871947674", expecting: "6871947674") + self.xorTest(lhs: "0", rhs: "-6871947674", expecting: "-6871947674") + self.xorTest(lhs: "0", rhs: "6012954215", expecting: "6012954215") + self.xorTest(lhs: "0", rhs: "-6012954215", expecting: "-6012954215") + self.xorTest(lhs: "0", rhs: "5153960756", expecting: "5153960756") + self.xorTest(lhs: "0", rhs: "-5153960756", expecting: "-5153960756") + self.xorTest(lhs: "0", rhs: "4294967297", expecting: "4294967297") + self.xorTest(lhs: "0", rhs: "-4294967297", expecting: "-4294967297") + self.xorTest(lhs: "0", rhs: "3435973838", expecting: "3435973838") + self.xorTest(lhs: "0", rhs: "-3435973838", expecting: "-3435973838") + self.xorTest(lhs: "0", rhs: "2576980379", expecting: "2576980379") + self.xorTest(lhs: "0", rhs: "-2576980379", expecting: "-2576980379") + self.xorTest(lhs: "0", rhs: "1717986920", expecting: "1717986920") + self.xorTest(lhs: "0", rhs: "-1717986920", expecting: "-1717986920") + self.xorTest(lhs: "0", rhs: "858993461", expecting: "858993461") + self.xorTest(lhs: "0", rhs: "-858993461", expecting: "-858993461") + 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: "8589934592", expecting: "8589934593") + self.xorTest(lhs: "1", rhs: "-8589934592", expecting: "-8589934591") + self.xorTest(lhs: "1", rhs: "7730941133", expecting: "7730941132") + self.xorTest(lhs: "1", rhs: "-7730941133", expecting: "-7730941134") + self.xorTest(lhs: "1", rhs: "6871947674", expecting: "6871947675") + self.xorTest(lhs: "1", rhs: "-6871947674", expecting: "-6871947673") + self.xorTest(lhs: "1", rhs: "6012954215", expecting: "6012954214") + self.xorTest(lhs: "1", rhs: "-6012954215", expecting: "-6012954216") + self.xorTest(lhs: "1", rhs: "5153960756", expecting: "5153960757") + self.xorTest(lhs: "1", rhs: "-5153960756", expecting: "-5153960755") + self.xorTest(lhs: "1", rhs: "4294967297", expecting: "4294967296") + self.xorTest(lhs: "1", rhs: "-4294967297", expecting: "-4294967298") + self.xorTest(lhs: "1", rhs: "3435973838", expecting: "3435973839") + self.xorTest(lhs: "1", rhs: "-3435973838", expecting: "-3435973837") + self.xorTest(lhs: "1", rhs: "2576980379", expecting: "2576980378") + self.xorTest(lhs: "1", rhs: "-2576980379", expecting: "-2576980380") + self.xorTest(lhs: "1", rhs: "1717986920", expecting: "1717986921") + self.xorTest(lhs: "1", rhs: "-1717986920", expecting: "-1717986919") + self.xorTest(lhs: "1", rhs: "858993461", expecting: "858993460") + self.xorTest(lhs: "1", rhs: "-858993461", expecting: "-858993462") + 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: "8589934592", expecting: "-8589934593") + self.xorTest(lhs: "-1", rhs: "-8589934592", expecting: "8589934591") + self.xorTest(lhs: "-1", rhs: "7730941133", expecting: "-7730941134") + self.xorTest(lhs: "-1", rhs: "-7730941133", expecting: "7730941132") + self.xorTest(lhs: "-1", rhs: "6871947674", expecting: "-6871947675") + self.xorTest(lhs: "-1", rhs: "-6871947674", expecting: "6871947673") + self.xorTest(lhs: "-1", rhs: "6012954215", expecting: "-6012954216") + self.xorTest(lhs: "-1", rhs: "-6012954215", expecting: "6012954214") + self.xorTest(lhs: "-1", rhs: "5153960756", expecting: "-5153960757") + self.xorTest(lhs: "-1", rhs: "-5153960756", expecting: "5153960755") + self.xorTest(lhs: "-1", rhs: "4294967297", expecting: "-4294967298") + self.xorTest(lhs: "-1", rhs: "-4294967297", expecting: "4294967296") + self.xorTest(lhs: "-1", rhs: "3435973838", expecting: "-3435973839") + self.xorTest(lhs: "-1", rhs: "-3435973838", expecting: "3435973837") + self.xorTest(lhs: "-1", rhs: "2576980379", expecting: "-2576980380") + self.xorTest(lhs: "-1", rhs: "-2576980379", expecting: "2576980378") + self.xorTest(lhs: "-1", rhs: "1717986920", expecting: "-1717986921") + self.xorTest(lhs: "-1", rhs: "-1717986920", expecting: "1717986919") + self.xorTest(lhs: "-1", rhs: "858993461", expecting: "-858993462") + self.xorTest(lhs: "-1", rhs: "-858993461", expecting: "858993460") + 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: "8589934592", expecting: "18446744065119617023") + self.xorTest(lhs: "18446744073709551615", rhs: "-8589934592", expecting: "-18446744065119617025") + self.xorTest(lhs: "18446744073709551615", rhs: "7730941133", expecting: "18446744065978610482") + self.xorTest(lhs: "18446744073709551615", rhs: "-7730941133", expecting: "-18446744065978610484") + self.xorTest(lhs: "18446744073709551615", rhs: "6871947674", expecting: "18446744066837603941") + self.xorTest(lhs: "18446744073709551615", rhs: "-6871947674", expecting: "-18446744066837603943") + self.xorTest(lhs: "18446744073709551615", rhs: "6012954215", expecting: "18446744067696597400") + self.xorTest(lhs: "18446744073709551615", rhs: "-6012954215", expecting: "-18446744067696597402") + self.xorTest(lhs: "18446744073709551615", rhs: "5153960756", expecting: "18446744068555590859") + self.xorTest(lhs: "18446744073709551615", rhs: "-5153960756", expecting: "-18446744068555590861") + self.xorTest(lhs: "18446744073709551615", rhs: "4294967297", expecting: "18446744069414584318") + self.xorTest(lhs: "18446744073709551615", rhs: "-4294967297", expecting: "-18446744069414584320") + self.xorTest(lhs: "18446744073709551615", rhs: "3435973838", expecting: "18446744070273577777") + self.xorTest(lhs: "18446744073709551615", rhs: "-3435973838", expecting: "-18446744070273577779") + self.xorTest(lhs: "18446744073709551615", rhs: "2576980379", expecting: "18446744071132571236") + self.xorTest(lhs: "18446744073709551615", rhs: "-2576980379", expecting: "-18446744071132571238") + self.xorTest(lhs: "18446744073709551615", rhs: "1717986920", expecting: "18446744071991564695") + self.xorTest(lhs: "18446744073709551615", rhs: "-1717986920", expecting: "-18446744071991564697") + self.xorTest(lhs: "18446744073709551615", rhs: "858993461", expecting: "18446744072850558154") + self.xorTest(lhs: "18446744073709551615", rhs: "-858993461", expecting: "-18446744072850558156") + 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: "8589934592", expecting: "-18446744065119617023") + self.xorTest(lhs: "-18446744073709551615", rhs: "-8589934592", expecting: "18446744065119617025") + self.xorTest(lhs: "-18446744073709551615", rhs: "7730941133", expecting: "-18446744065978610484") + self.xorTest(lhs: "-18446744073709551615", rhs: "-7730941133", expecting: "18446744065978610482") + self.xorTest(lhs: "-18446744073709551615", rhs: "6871947674", expecting: "-18446744066837603941") + self.xorTest(lhs: "-18446744073709551615", rhs: "-6871947674", expecting: "18446744066837603943") + self.xorTest(lhs: "-18446744073709551615", rhs: "6012954215", expecting: "-18446744067696597402") + self.xorTest(lhs: "-18446744073709551615", rhs: "-6012954215", expecting: "18446744067696597400") + self.xorTest(lhs: "-18446744073709551615", rhs: "5153960756", expecting: "-18446744068555590859") + self.xorTest(lhs: "-18446744073709551615", rhs: "-5153960756", expecting: "18446744068555590861") + self.xorTest(lhs: "-18446744073709551615", rhs: "4294967297", expecting: "-18446744069414584320") + self.xorTest(lhs: "-18446744073709551615", rhs: "-4294967297", expecting: "18446744069414584318") + self.xorTest(lhs: "-18446744073709551615", rhs: "3435973838", expecting: "-18446744070273577777") + self.xorTest(lhs: "-18446744073709551615", rhs: "-3435973838", expecting: "18446744070273577779") + self.xorTest(lhs: "-18446744073709551615", rhs: "2576980379", expecting: "-18446744071132571238") + self.xorTest(lhs: "-18446744073709551615", rhs: "-2576980379", expecting: "18446744071132571236") + self.xorTest(lhs: "-18446744073709551615", rhs: "1717986920", expecting: "-18446744071991564695") + self.xorTest(lhs: "-18446744073709551615", rhs: "-1717986920", expecting: "18446744071991564697") + self.xorTest(lhs: "-18446744073709551615", rhs: "858993461", expecting: "-18446744072850558156") + self.xorTest(lhs: "-18446744073709551615", rhs: "-858993461", expecting: "18446744072850558154") + 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: "8589934592", expecting: "18446744082299486209") + self.xorTest(lhs: "18446744073709551617", rhs: "-8589934592", expecting: "-18446744082299486207") + self.xorTest(lhs: "18446744073709551617", rhs: "7730941133", expecting: "18446744081440492748") + self.xorTest(lhs: "18446744073709551617", rhs: "-7730941133", expecting: "-18446744081440492750") + self.xorTest(lhs: "18446744073709551617", rhs: "6871947674", expecting: "18446744080581499291") + self.xorTest(lhs: "18446744073709551617", rhs: "-6871947674", expecting: "-18446744080581499289") + self.xorTest(lhs: "18446744073709551617", rhs: "6012954215", expecting: "18446744079722505830") + self.xorTest(lhs: "18446744073709551617", rhs: "-6012954215", expecting: "-18446744079722505832") + self.xorTest(lhs: "18446744073709551617", rhs: "5153960756", expecting: "18446744078863512373") + self.xorTest(lhs: "18446744073709551617", rhs: "-5153960756", expecting: "-18446744078863512371") + self.xorTest(lhs: "18446744073709551617", rhs: "4294967297", expecting: "18446744078004518912") + self.xorTest(lhs: "18446744073709551617", rhs: "-4294967297", expecting: "-18446744078004518914") + self.xorTest(lhs: "18446744073709551617", rhs: "3435973838", expecting: "18446744077145525455") + self.xorTest(lhs: "18446744073709551617", rhs: "-3435973838", expecting: "-18446744077145525453") + self.xorTest(lhs: "18446744073709551617", rhs: "2576980379", expecting: "18446744076286531994") + self.xorTest(lhs: "18446744073709551617", rhs: "-2576980379", expecting: "-18446744076286531996") + self.xorTest(lhs: "18446744073709551617", rhs: "1717986920", expecting: "18446744075427538537") + self.xorTest(lhs: "18446744073709551617", rhs: "-1717986920", expecting: "-18446744075427538535") + self.xorTest(lhs: "18446744073709551617", rhs: "858993461", expecting: "18446744074568545076") + self.xorTest(lhs: "18446744073709551617", rhs: "-858993461", expecting: "-18446744074568545078") + 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: "8589934592", expecting: "-18446744082299486209") + self.xorTest(lhs: "-18446744073709551617", rhs: "-8589934592", expecting: "18446744082299486207") + self.xorTest(lhs: "-18446744073709551617", rhs: "7730941133", expecting: "-18446744081440492750") + self.xorTest(lhs: "-18446744073709551617", rhs: "-7730941133", expecting: "18446744081440492748") + self.xorTest(lhs: "-18446744073709551617", rhs: "6871947674", expecting: "-18446744080581499291") + self.xorTest(lhs: "-18446744073709551617", rhs: "-6871947674", expecting: "18446744080581499289") + self.xorTest(lhs: "-18446744073709551617", rhs: "6012954215", expecting: "-18446744079722505832") + self.xorTest(lhs: "-18446744073709551617", rhs: "-6012954215", expecting: "18446744079722505830") + self.xorTest(lhs: "-18446744073709551617", rhs: "5153960756", expecting: "-18446744078863512373") + self.xorTest(lhs: "-18446744073709551617", rhs: "-5153960756", expecting: "18446744078863512371") + self.xorTest(lhs: "-18446744073709551617", rhs: "4294967297", expecting: "-18446744078004518914") + self.xorTest(lhs: "-18446744073709551617", rhs: "-4294967297", expecting: "18446744078004518912") + self.xorTest(lhs: "-18446744073709551617", rhs: "3435973838", expecting: "-18446744077145525455") + self.xorTest(lhs: "-18446744073709551617", rhs: "-3435973838", expecting: "18446744077145525453") + self.xorTest(lhs: "-18446744073709551617", rhs: "2576980379", expecting: "-18446744076286531996") + self.xorTest(lhs: "-18446744073709551617", rhs: "-2576980379", expecting: "18446744076286531994") + self.xorTest(lhs: "-18446744073709551617", rhs: "1717986920", expecting: "-18446744075427538537") + self.xorTest(lhs: "-18446744073709551617", rhs: "-1717986920", expecting: "18446744075427538535") + self.xorTest(lhs: "-18446744073709551617", rhs: "858993461", expecting: "-18446744074568545078") + self.xorTest(lhs: "-18446744073709551617", rhs: "-858993461", expecting: "18446744074568545076") + 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: "8589934592", expecting: "340282366920938463481821351514067697666") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "-340282366920938463481821351514067697662") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "7730941133", expecting: "340282366920938463481821351513208704207") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "-340282366920938463481821351513208704207") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "6871947674", expecting: "340282366920938463481821351512349710744") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "-340282366920938463481821351512349710748") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "6012954215", expecting: "340282366920938463481821351511490717285") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "-340282366920938463481821351511490717285") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "5153960756", expecting: "340282366920938463481821351510631723830") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "-340282366920938463481821351510631723826") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "4294967297", expecting: "340282366920938463481821351509772730371") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "-340282366920938463481821351509772730371") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "3435973838", expecting: "340282366920938463481821351508913736908") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "-340282366920938463481821351508913736912") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "2576980379", expecting: "340282366920938463481821351508054743449") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "-340282366920938463481821351508054743449") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "1717986920", expecting: "340282366920938463481821351507195749994") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "-340282366920938463481821351507195749990") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "858993461", expecting: "340282366920938463481821351506336756535") + self.xorTest(lhs: "340282366920938463481821351505477763074", rhs: "-858993461", expecting: "-340282366920938463481821351506336756535") + 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: "8589934592", expecting: "-340282366920938463481821351514067697666") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-8589934592", expecting: "340282366920938463481821351514067697662") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "7730941133", expecting: "-340282366920938463481821351513208704205") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-7730941133", expecting: "340282366920938463481821351513208704205") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "6871947674", expecting: "-340282366920938463481821351512349710748") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6871947674", expecting: "340282366920938463481821351512349710744") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "6012954215", expecting: "-340282366920938463481821351511490717287") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-6012954215", expecting: "340282366920938463481821351511490717287") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "5153960756", expecting: "-340282366920938463481821351510631723830") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-5153960756", expecting: "340282366920938463481821351510631723826") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "4294967297", expecting: "-340282366920938463481821351509772730369") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-4294967297", expecting: "340282366920938463481821351509772730369") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "3435973838", expecting: "-340282366920938463481821351508913736912") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-3435973838", expecting: "340282366920938463481821351508913736908") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "2576980379", expecting: "-340282366920938463481821351508054743451") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-2576980379", expecting: "340282366920938463481821351508054743451") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "1717986920", expecting: "-340282366920938463481821351507195749994") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-1717986920", expecting: "340282366920938463481821351507195749990") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "858993461", expecting: "-340282366920938463481821351506336756533") + self.xorTest(lhs: "-340282366920938463481821351505477763074", rhs: "-858993461", expecting: "340282366920938463481821351506336756533") + 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: "8589934592", expecting: "6277101735386680764516354157049543343010657915262451318789") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "-6277101735386680764516354157049543343010657915262451318779") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "6277101735386680764516354157049543343010657915261592325320") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "-6277101735386680764516354157049543343010657915261592325322") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "6277101735386680764516354157049543343010657915260733331871") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "-6277101735386680764516354157049543343010657915260733331869") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "6277101735386680764516354157049543343010657915259874338402") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "-6277101735386680764516354157049543343010657915259874338404") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "6277101735386680764516354157049543343010657915259015344945") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "-6277101735386680764516354157049543343010657915259015344951") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "6277101735386680764516354157049543343010657915258156351492") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "-6277101735386680764516354157049543343010657915258156351494") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "6277101735386680764516354157049543343010657915257297358027") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "-6277101735386680764516354157049543343010657915257297358025") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "6277101735386680764516354157049543343010657915256438364574") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "-6277101735386680764516354157049543343010657915256438364576") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "6277101735386680764516354157049543343010657915255579371117") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "-6277101735386680764516354157049543343010657915255579371107") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "6277101735386680764516354157049543343010657915254720377648") + self.xorTest(lhs: "6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "-6277101735386680764516354157049543343010657915254720377650") + 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: "8589934592", expecting: "-6277101735386680764516354157049543343010657915262451318789") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-8589934592", expecting: "6277101735386680764516354157049543343010657915262451318779") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "7730941133", expecting: "-6277101735386680764516354157049543343010657915261592325322") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-7730941133", expecting: "6277101735386680764516354157049543343010657915261592325320") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6871947674", expecting: "-6277101735386680764516354157049543343010657915260733331871") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6871947674", expecting: "6277101735386680764516354157049543343010657915260733331869") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "6012954215", expecting: "-6277101735386680764516354157049543343010657915259874338404") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-6012954215", expecting: "6277101735386680764516354157049543343010657915259874338402") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "5153960756", expecting: "-6277101735386680764516354157049543343010657915259015344945") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-5153960756", expecting: "6277101735386680764516354157049543343010657915259015344951") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "4294967297", expecting: "-6277101735386680764516354157049543343010657915258156351494") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-4294967297", expecting: "6277101735386680764516354157049543343010657915258156351492") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "3435973838", expecting: "-6277101735386680764516354157049543343010657915257297358027") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-3435973838", expecting: "6277101735386680764516354157049543343010657915257297358025") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "2576980379", expecting: "-6277101735386680764516354157049543343010657915256438364576") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-2576980379", expecting: "6277101735386680764516354157049543343010657915256438364574") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "1717986920", expecting: "-6277101735386680764516354157049543343010657915255579371117") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-1717986920", expecting: "6277101735386680764516354157049543343010657915255579371107") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "858993461", expecting: "-6277101735386680764516354157049543343010657915254720377650") + self.xorTest(lhs: "-6277101735386680764516354157049543343010657915253861384197", rhs: "-858993461", expecting: "6277101735386680764516354157049543343010657915254720377648") + 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: "8589934592", expecting: "18446744082299486215") + self.xorTest(lhs: "18446744073709551623", rhs: "-8589934592", expecting: "-18446744082299486201") + self.xorTest(lhs: "18446744073709551623", rhs: "7730941133", expecting: "18446744081440492746") + self.xorTest(lhs: "18446744073709551623", rhs: "-7730941133", expecting: "-18446744081440492748") + self.xorTest(lhs: "18446744073709551623", rhs: "6871947674", expecting: "18446744080581499293") + self.xorTest(lhs: "18446744073709551623", rhs: "-6871947674", expecting: "-18446744080581499295") + self.xorTest(lhs: "18446744073709551623", rhs: "6012954215", expecting: "18446744079722505824") + self.xorTest(lhs: "18446744073709551623", rhs: "-6012954215", expecting: "-18446744079722505826") + self.xorTest(lhs: "18446744073709551623", rhs: "5153960756", expecting: "18446744078863512371") + self.xorTest(lhs: "18446744073709551623", rhs: "-5153960756", expecting: "-18446744078863512373") + self.xorTest(lhs: "18446744073709551623", rhs: "4294967297", expecting: "18446744078004518918") + self.xorTest(lhs: "18446744073709551623", rhs: "-4294967297", expecting: "-18446744078004518920") + self.xorTest(lhs: "18446744073709551623", rhs: "3435973838", expecting: "18446744077145525449") + self.xorTest(lhs: "18446744073709551623", rhs: "-3435973838", expecting: "-18446744077145525451") + self.xorTest(lhs: "18446744073709551623", rhs: "2576980379", expecting: "18446744076286531996") + self.xorTest(lhs: "18446744073709551623", rhs: "-2576980379", expecting: "-18446744076286531998") + self.xorTest(lhs: "18446744073709551623", rhs: "1717986920", expecting: "18446744075427538543") + self.xorTest(lhs: "18446744073709551623", rhs: "-1717986920", expecting: "-18446744075427538529") + self.xorTest(lhs: "18446744073709551623", rhs: "858993461", expecting: "18446744074568545074") + self.xorTest(lhs: "18446744073709551623", rhs: "-858993461", expecting: "-18446744074568545076") + 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: "8589934592", expecting: "-18446744082299486215") + self.xorTest(lhs: "-18446744073709551623", rhs: "-8589934592", expecting: "18446744082299486201") + self.xorTest(lhs: "-18446744073709551623", rhs: "7730941133", expecting: "-18446744081440492748") + self.xorTest(lhs: "-18446744073709551623", rhs: "-7730941133", expecting: "18446744081440492746") + self.xorTest(lhs: "-18446744073709551623", rhs: "6871947674", expecting: "-18446744080581499293") + self.xorTest(lhs: "-18446744073709551623", rhs: "-6871947674", expecting: "18446744080581499295") + self.xorTest(lhs: "-18446744073709551623", rhs: "6012954215", expecting: "-18446744079722505826") + self.xorTest(lhs: "-18446744073709551623", rhs: "-6012954215", expecting: "18446744079722505824") + self.xorTest(lhs: "-18446744073709551623", rhs: "5153960756", expecting: "-18446744078863512371") + self.xorTest(lhs: "-18446744073709551623", rhs: "-5153960756", expecting: "18446744078863512373") + self.xorTest(lhs: "-18446744073709551623", rhs: "4294967297", expecting: "-18446744078004518920") + self.xorTest(lhs: "-18446744073709551623", rhs: "-4294967297", expecting: "18446744078004518918") + self.xorTest(lhs: "-18446744073709551623", rhs: "3435973838", expecting: "-18446744077145525449") + self.xorTest(lhs: "-18446744073709551623", rhs: "-3435973838", expecting: "18446744077145525451") + self.xorTest(lhs: "-18446744073709551623", rhs: "2576980379", expecting: "-18446744076286531998") + self.xorTest(lhs: "-18446744073709551623", rhs: "-2576980379", expecting: "18446744076286531996") + self.xorTest(lhs: "-18446744073709551623", rhs: "1717986920", expecting: "-18446744075427538543") + self.xorTest(lhs: "-18446744073709551623", rhs: "-1717986920", expecting: "18446744075427538529") + self.xorTest(lhs: "-18446744073709551623", rhs: "858993461", expecting: "-18446744074568545076") + self.xorTest(lhs: "-18446744073709551623", rhs: "-858993461", expecting: "18446744074568545074") + 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: "8589934592", expecting: "340282366920938463592501815956325007362") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "-340282366920938463592501815956325007358") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "7730941133", expecting: "340282366920938463592501815955466013903") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "-340282366920938463592501815955466013903") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "6871947674", expecting: "340282366920938463592501815954607020440") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "-340282366920938463592501815954607020444") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "6012954215", expecting: "340282366920938463592501815953748026981") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "-340282366920938463592501815953748026981") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "5153960756", expecting: "340282366920938463592501815952889033526") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "-340282366920938463592501815952889033522") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "4294967297", expecting: "340282366920938463592501815952030040067") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "-340282366920938463592501815952030040067") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "3435973838", expecting: "340282366920938463592501815951171046604") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "-340282366920938463592501815951171046608") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "2576980379", expecting: "340282366920938463592501815950312053145") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "-340282366920938463592501815950312053145") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "1717986920", expecting: "340282366920938463592501815949453059690") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "-340282366920938463592501815949453059686") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "858993461", expecting: "340282366920938463592501815948594066231") + self.xorTest(lhs: "340282366920938463592501815947735072770", rhs: "-858993461", expecting: "-340282366920938463592501815948594066231") + 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: "8589934592", expecting: "-340282366920938463592501815956325007362") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-8589934592", expecting: "340282366920938463592501815956325007358") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "7730941133", expecting: "-340282366920938463592501815955466013901") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-7730941133", expecting: "340282366920938463592501815955466013901") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "6871947674", expecting: "-340282366920938463592501815954607020444") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6871947674", expecting: "340282366920938463592501815954607020440") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "6012954215", expecting: "-340282366920938463592501815953748026983") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-6012954215", expecting: "340282366920938463592501815953748026983") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "5153960756", expecting: "-340282366920938463592501815952889033526") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-5153960756", expecting: "340282366920938463592501815952889033522") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "4294967297", expecting: "-340282366920938463592501815952030040065") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-4294967297", expecting: "340282366920938463592501815952030040065") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "3435973838", expecting: "-340282366920938463592501815951171046608") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-3435973838", expecting: "340282366920938463592501815951171046604") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "2576980379", expecting: "-340282366920938463592501815950312053147") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-2576980379", expecting: "340282366920938463592501815950312053147") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "1717986920", expecting: "-340282366920938463592501815949453059690") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-1717986920", expecting: "340282366920938463592501815949453059686") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "858993461", expecting: "-340282366920938463592501815948594066229") + self.xorTest(lhs: "-340282366920938463592501815947735072770", rhs: "-858993461", expecting: "340282366920938463592501815948594066229") + 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: "8589934592", expecting: "6277101735386680766558048358575174123680225095410803277835") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "-6277101735386680766558048358575174123680225095410803277813") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "6277101735386680766558048358575174123680225095409944284358") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "-6277101735386680766558048358575174123680225095409944284360") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "6277101735386680766558048358575174123680225095409085290897") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "-6277101735386680766558048358575174123680225095409085290899") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "6277101735386680766558048358575174123680225095408226297452") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "-6277101735386680766558048358575174123680225095408226297454") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "6277101735386680766558048358575174123680225095407367303999") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "-6277101735386680766558048358575174123680225095407367303993") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "6277101735386680766558048358575174123680225095406508310538") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "-6277101735386680766558048358575174123680225095406508310540") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "6277101735386680766558048358575174123680225095405649317061") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "-6277101735386680766558048358575174123680225095405649317063") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "6277101735386680766558048358575174123680225095404790323600") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "-6277101735386680766558048358575174123680225095404790323602") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "6277101735386680766558048358575174123680225095403931330147") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "-6277101735386680766558048358575174123680225095403931330157") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "6277101735386680766558048358575174123680225095403072336702") + self.xorTest(lhs: "6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "-6277101735386680766558048358575174123680225095403072336704") + 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: "8589934592", expecting: "-6277101735386680766558048358575174123680225095410803277835") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-8589934592", expecting: "6277101735386680766558048358575174123680225095410803277813") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "7730941133", expecting: "-6277101735386680766558048358575174123680225095409944284360") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-7730941133", expecting: "6277101735386680766558048358575174123680225095409944284358") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6871947674", expecting: "-6277101735386680766558048358575174123680225095409085290897") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6871947674", expecting: "6277101735386680766558048358575174123680225095409085290899") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "6012954215", expecting: "-6277101735386680766558048358575174123680225095408226297454") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-6012954215", expecting: "6277101735386680766558048358575174123680225095408226297452") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "5153960756", expecting: "-6277101735386680766558048358575174123680225095407367303999") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-5153960756", expecting: "6277101735386680766558048358575174123680225095407367303993") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "4294967297", expecting: "-6277101735386680766558048358575174123680225095406508310540") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-4294967297", expecting: "6277101735386680766558048358575174123680225095406508310538") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "3435973838", expecting: "-6277101735386680766558048358575174123680225095405649317061") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-3435973838", expecting: "6277101735386680766558048358575174123680225095405649317063") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "2576980379", expecting: "-6277101735386680766558048358575174123680225095404790323602") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-2576980379", expecting: "6277101735386680766558048358575174123680225095404790323600") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "1717986920", expecting: "-6277101735386680766558048358575174123680225095403931330147") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-1717986920", expecting: "6277101735386680766558048358575174123680225095403931330157") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "858993461", expecting: "-6277101735386680766558048358575174123680225095403072336704") + self.xorTest(lhs: "-6277101735386680766558048358575174123680225095402213343243", rhs: "-858993461", expecting: "6277101735386680766558048358575174123680225095403072336702") + 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: "8589934592", expecting: "18446744082299486221") + self.xorTest(lhs: "18446744073709551629", rhs: "-8589934592", expecting: "-18446744082299486195") + self.xorTest(lhs: "18446744073709551629", rhs: "7730941133", expecting: "18446744081440492736") + self.xorTest(lhs: "18446744073709551629", rhs: "-7730941133", expecting: "-18446744081440492738") + self.xorTest(lhs: "18446744073709551629", rhs: "6871947674", expecting: "18446744080581499287") + self.xorTest(lhs: "18446744073709551629", rhs: "-6871947674", expecting: "-18446744080581499285") + self.xorTest(lhs: "18446744073709551629", rhs: "6012954215", expecting: "18446744079722505834") + self.xorTest(lhs: "18446744073709551629", rhs: "-6012954215", expecting: "-18446744079722505836") + self.xorTest(lhs: "18446744073709551629", rhs: "5153960756", expecting: "18446744078863512377") + self.xorTest(lhs: "18446744073709551629", rhs: "-5153960756", expecting: "-18446744078863512383") + self.xorTest(lhs: "18446744073709551629", rhs: "4294967297", expecting: "18446744078004518924") + self.xorTest(lhs: "18446744073709551629", rhs: "-4294967297", expecting: "-18446744078004518926") + self.xorTest(lhs: "18446744073709551629", rhs: "3435973838", expecting: "18446744077145525443") + self.xorTest(lhs: "18446744073709551629", rhs: "-3435973838", expecting: "-18446744077145525441") + self.xorTest(lhs: "18446744073709551629", rhs: "2576980379", expecting: "18446744076286531990") + self.xorTest(lhs: "18446744073709551629", rhs: "-2576980379", expecting: "-18446744076286531992") + self.xorTest(lhs: "18446744073709551629", rhs: "1717986920", expecting: "18446744075427538533") + self.xorTest(lhs: "18446744073709551629", rhs: "-1717986920", expecting: "-18446744075427538539") + self.xorTest(lhs: "18446744073709551629", rhs: "858993461", expecting: "18446744074568545080") + self.xorTest(lhs: "18446744073709551629", rhs: "-858993461", expecting: "-18446744074568545082") + 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: "8589934592", expecting: "-18446744082299486221") + self.xorTest(lhs: "-18446744073709551629", rhs: "-8589934592", expecting: "18446744082299486195") + self.xorTest(lhs: "-18446744073709551629", rhs: "7730941133", expecting: "-18446744081440492738") + self.xorTest(lhs: "-18446744073709551629", rhs: "-7730941133", expecting: "18446744081440492736") + self.xorTest(lhs: "-18446744073709551629", rhs: "6871947674", expecting: "-18446744080581499287") + self.xorTest(lhs: "-18446744073709551629", rhs: "-6871947674", expecting: "18446744080581499285") + self.xorTest(lhs: "-18446744073709551629", rhs: "6012954215", expecting: "-18446744079722505836") + self.xorTest(lhs: "-18446744073709551629", rhs: "-6012954215", expecting: "18446744079722505834") + self.xorTest(lhs: "-18446744073709551629", rhs: "5153960756", expecting: "-18446744078863512377") + self.xorTest(lhs: "-18446744073709551629", rhs: "-5153960756", expecting: "18446744078863512383") + self.xorTest(lhs: "-18446744073709551629", rhs: "4294967297", expecting: "-18446744078004518926") + self.xorTest(lhs: "-18446744073709551629", rhs: "-4294967297", expecting: "18446744078004518924") + self.xorTest(lhs: "-18446744073709551629", rhs: "3435973838", expecting: "-18446744077145525443") + self.xorTest(lhs: "-18446744073709551629", rhs: "-3435973838", expecting: "18446744077145525441") + self.xorTest(lhs: "-18446744073709551629", rhs: "2576980379", expecting: "-18446744076286531992") + self.xorTest(lhs: "-18446744073709551629", rhs: "-2576980379", expecting: "18446744076286531990") + self.xorTest(lhs: "-18446744073709551629", rhs: "1717986920", expecting: "-18446744075427538533") + self.xorTest(lhs: "-18446744073709551629", rhs: "-1717986920", expecting: "18446744075427538539") + self.xorTest(lhs: "-18446744073709551629", rhs: "858993461", expecting: "-18446744074568545082") + self.xorTest(lhs: "-18446744073709551629", rhs: "-858993461", expecting: "18446744074568545080") + 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: "8589934592", expecting: "340282366920938463703182280398582317058") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "-340282366920938463703182280398582317054") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "7730941133", expecting: "340282366920938463703182280397723323599") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "-340282366920938463703182280397723323599") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "6871947674", expecting: "340282366920938463703182280396864330136") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "-340282366920938463703182280396864330140") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "6012954215", expecting: "340282366920938463703182280396005336677") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "-340282366920938463703182280396005336677") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "5153960756", expecting: "340282366920938463703182280395146343222") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "-340282366920938463703182280395146343218") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "4294967297", expecting: "340282366920938463703182280394287349763") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "-340282366920938463703182280394287349763") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "3435973838", expecting: "340282366920938463703182280393428356300") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "-340282366920938463703182280393428356304") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "2576980379", expecting: "340282366920938463703182280392569362841") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "-340282366920938463703182280392569362841") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "1717986920", expecting: "340282366920938463703182280391710369386") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "-340282366920938463703182280391710369382") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "858993461", expecting: "340282366920938463703182280390851375927") + self.xorTest(lhs: "340282366920938463703182280389992382466", rhs: "-858993461", expecting: "-340282366920938463703182280390851375927") + 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: "8589934592", expecting: "-340282366920938463703182280398582317058") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-8589934592", expecting: "340282366920938463703182280398582317054") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "7730941133", expecting: "-340282366920938463703182280397723323597") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-7730941133", expecting: "340282366920938463703182280397723323597") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "6871947674", expecting: "-340282366920938463703182280396864330140") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6871947674", expecting: "340282366920938463703182280396864330136") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "6012954215", expecting: "-340282366920938463703182280396005336679") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-6012954215", expecting: "340282366920938463703182280396005336679") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "5153960756", expecting: "-340282366920938463703182280395146343222") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-5153960756", expecting: "340282366920938463703182280395146343218") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "4294967297", expecting: "-340282366920938463703182280394287349761") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-4294967297", expecting: "340282366920938463703182280394287349761") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "3435973838", expecting: "-340282366920938463703182280393428356304") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-3435973838", expecting: "340282366920938463703182280393428356300") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "2576980379", expecting: "-340282366920938463703182280392569362843") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-2576980379", expecting: "340282366920938463703182280392569362843") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "1717986920", expecting: "-340282366920938463703182280391710369386") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-1717986920", expecting: "340282366920938463703182280391710369382") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "858993461", expecting: "-340282366920938463703182280390851375925") + self.xorTest(lhs: "-340282366920938463703182280389992382466", rhs: "-858993461", expecting: "340282366920938463703182280390851375925") + 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: "8589934592", expecting: "6277101735386680768599742560100804904349792275559155236881") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "-6277101735386680768599742560100804904349792275559155236847") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "6277101735386680768599742560100804904349792275558296243420") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "-6277101735386680768599742560100804904349792275558296243422") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "6277101735386680768599742560100804904349792275557437249931") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "-6277101735386680768599742560100804904349792275557437249929") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "6277101735386680768599742560100804904349792275556578256502") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "-6277101735386680768599742560100804904349792275556578256504") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "6277101735386680768599742560100804904349792275555719263013") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "-6277101735386680768599742560100804904349792275555719263011") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "6277101735386680768599742560100804904349792275554860269584") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "-6277101735386680768599742560100804904349792275554860269586") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "6277101735386680768599742560100804904349792275554001276127") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "-6277101735386680768599742560100804904349792275554001276125") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "6277101735386680768599742560100804904349792275553142282634") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "-6277101735386680768599742560100804904349792275553142282636") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "6277101735386680768599742560100804904349792275552283289209") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "-6277101735386680768599742560100804904349792275552283289207") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "6277101735386680768599742560100804904349792275551424295716") + self.xorTest(lhs: "6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "-6277101735386680768599742560100804904349792275551424295718") + 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: "8589934592", expecting: "-6277101735386680768599742560100804904349792275559155236881") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-8589934592", expecting: "6277101735386680768599742560100804904349792275559155236847") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "7730941133", expecting: "-6277101735386680768599742560100804904349792275558296243422") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-7730941133", expecting: "6277101735386680768599742560100804904349792275558296243420") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6871947674", expecting: "-6277101735386680768599742560100804904349792275557437249931") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6871947674", expecting: "6277101735386680768599742560100804904349792275557437249929") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "6012954215", expecting: "-6277101735386680768599742560100804904349792275556578256504") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-6012954215", expecting: "6277101735386680768599742560100804904349792275556578256502") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "5153960756", expecting: "-6277101735386680768599742560100804904349792275555719263013") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-5153960756", expecting: "6277101735386680768599742560100804904349792275555719263011") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "4294967297", expecting: "-6277101735386680768599742560100804904349792275554860269586") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-4294967297", expecting: "6277101735386680768599742560100804904349792275554860269584") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "3435973838", expecting: "-6277101735386680768599742560100804904349792275554001276127") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-3435973838", expecting: "6277101735386680768599742560100804904349792275554001276125") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "2576980379", expecting: "-6277101735386680768599742560100804904349792275553142282636") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-2576980379", expecting: "6277101735386680768599742560100804904349792275553142282634") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "1717986920", expecting: "-6277101735386680768599742560100804904349792275552283289209") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-1717986920", expecting: "6277101735386680768599742560100804904349792275552283289207") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "858993461", expecting: "-6277101735386680768599742560100804904349792275551424295718") + self.xorTest(lhs: "-6277101735386680768599742560100804904349792275550565302289", rhs: "-858993461", expecting: "6277101735386680768599742560100804904349792275551424295716") + 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: "8589934592", expecting: "18446744082299486227") + self.xorTest(lhs: "18446744073709551635", rhs: "-8589934592", expecting: "-18446744082299486189") + self.xorTest(lhs: "18446744073709551635", rhs: "7730941133", expecting: "18446744081440492766") + self.xorTest(lhs: "18446744073709551635", rhs: "-7730941133", expecting: "-18446744081440492768") + self.xorTest(lhs: "18446744073709551635", rhs: "6871947674", expecting: "18446744080581499273") + self.xorTest(lhs: "18446744073709551635", rhs: "-6871947674", expecting: "-18446744080581499275") + self.xorTest(lhs: "18446744073709551635", rhs: "6012954215", expecting: "18446744079722505844") + self.xorTest(lhs: "18446744073709551635", rhs: "-6012954215", expecting: "-18446744079722505846") + self.xorTest(lhs: "18446744073709551635", rhs: "5153960756", expecting: "18446744078863512359") + self.xorTest(lhs: "18446744073709551635", rhs: "-5153960756", expecting: "-18446744078863512353") + self.xorTest(lhs: "18446744073709551635", rhs: "4294967297", expecting: "18446744078004518930") + self.xorTest(lhs: "18446744073709551635", rhs: "-4294967297", expecting: "-18446744078004518932") + self.xorTest(lhs: "18446744073709551635", rhs: "3435973838", expecting: "18446744077145525469") + self.xorTest(lhs: "18446744073709551635", rhs: "-3435973838", expecting: "-18446744077145525471") + self.xorTest(lhs: "18446744073709551635", rhs: "2576980379", expecting: "18446744076286531976") + self.xorTest(lhs: "18446744073709551635", rhs: "-2576980379", expecting: "-18446744076286531978") + self.xorTest(lhs: "18446744073709551635", rhs: "1717986920", expecting: "18446744075427538555") + self.xorTest(lhs: "18446744073709551635", rhs: "-1717986920", expecting: "-18446744075427538549") + self.xorTest(lhs: "18446744073709551635", rhs: "858993461", expecting: "18446744074568545062") + self.xorTest(lhs: "18446744073709551635", rhs: "-858993461", expecting: "-18446744074568545064") + 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: "8589934592", expecting: "-18446744082299486227") + self.xorTest(lhs: "-18446744073709551635", rhs: "-8589934592", expecting: "18446744082299486189") + self.xorTest(lhs: "-18446744073709551635", rhs: "7730941133", expecting: "-18446744081440492768") + self.xorTest(lhs: "-18446744073709551635", rhs: "-7730941133", expecting: "18446744081440492766") + self.xorTest(lhs: "-18446744073709551635", rhs: "6871947674", expecting: "-18446744080581499273") + self.xorTest(lhs: "-18446744073709551635", rhs: "-6871947674", expecting: "18446744080581499275") + self.xorTest(lhs: "-18446744073709551635", rhs: "6012954215", expecting: "-18446744079722505846") + self.xorTest(lhs: "-18446744073709551635", rhs: "-6012954215", expecting: "18446744079722505844") + self.xorTest(lhs: "-18446744073709551635", rhs: "5153960756", expecting: "-18446744078863512359") + self.xorTest(lhs: "-18446744073709551635", rhs: "-5153960756", expecting: "18446744078863512353") + self.xorTest(lhs: "-18446744073709551635", rhs: "4294967297", expecting: "-18446744078004518932") + self.xorTest(lhs: "-18446744073709551635", rhs: "-4294967297", expecting: "18446744078004518930") + self.xorTest(lhs: "-18446744073709551635", rhs: "3435973838", expecting: "-18446744077145525469") + self.xorTest(lhs: "-18446744073709551635", rhs: "-3435973838", expecting: "18446744077145525471") + self.xorTest(lhs: "-18446744073709551635", rhs: "2576980379", expecting: "-18446744076286531978") + self.xorTest(lhs: "-18446744073709551635", rhs: "-2576980379", expecting: "18446744076286531976") + self.xorTest(lhs: "-18446744073709551635", rhs: "1717986920", expecting: "-18446744075427538555") + self.xorTest(lhs: "-18446744073709551635", rhs: "-1717986920", expecting: "18446744075427538549") + self.xorTest(lhs: "-18446744073709551635", rhs: "858993461", expecting: "-18446744074568545064") + self.xorTest(lhs: "-18446744073709551635", rhs: "-858993461", expecting: "18446744074568545062") + } + + func test_xor_big_big() { + 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 + + // Following tests assume: assert(Word.bitWidth == 64) + // Even if this is not the case then the tests should still pass. + + func test_shiftLeft_int_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: "8589934592", count: 5, expecting: "274877906944") + self.shiftLeftTest(value: "-8589934592", count: 5, expecting: "-274877906944") + self.shiftLeftTest(value: "7730941133", count: 5, expecting: "247390116256") + self.shiftLeftTest(value: "-7730941133", count: 5, expecting: "-247390116256") + self.shiftLeftTest(value: "6871947674", count: 5, expecting: "219902325568") + self.shiftLeftTest(value: "-6871947674", count: 5, expecting: "-219902325568") + self.shiftLeftTest(value: "6012954215", count: 5, expecting: "192414534880") + self.shiftLeftTest(value: "-6012954215", count: 5, expecting: "-192414534880") + self.shiftLeftTest(value: "5153960756", count: 5, expecting: "164926744192") + self.shiftLeftTest(value: "-5153960756", count: 5, expecting: "-164926744192") + self.shiftLeftTest(value: "4294967297", count: 5, expecting: "137438953504") + self.shiftLeftTest(value: "-4294967297", count: 5, expecting: "-137438953504") + self.shiftLeftTest(value: "3435973838", count: 5, expecting: "109951162816") + self.shiftLeftTest(value: "-3435973838", count: 5, expecting: "-109951162816") + self.shiftLeftTest(value: "2576980379", count: 5, expecting: "82463372128") + self.shiftLeftTest(value: "-2576980379", count: 5, expecting: "-82463372128") + self.shiftLeftTest(value: "1717986920", count: 5, expecting: "54975581440") + self.shiftLeftTest(value: "-1717986920", count: 5, expecting: "-54975581440") + self.shiftLeftTest(value: "858993461", count: 5, expecting: "27487790752") + self.shiftLeftTest(value: "-858993461", count: 5, expecting: "-27487790752") + } + + func test_shiftLeft_int_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: "8589934592", count: 64, expecting: "158456325028528675187087900672") + self.shiftLeftTest(value: "-8589934592", count: 64, expecting: "-158456325028528675187087900672") + self.shiftLeftTest(value: "7730941133", count: 64, expecting: "142610692529365156483121020928") + self.shiftLeftTest(value: "-7730941133", count: 64, expecting: "-142610692529365156483121020928") + self.shiftLeftTest(value: "6871947674", count: 64, expecting: "126765060030201637779154141184") + self.shiftLeftTest(value: "-6871947674", count: 64, expecting: "-126765060030201637779154141184") + self.shiftLeftTest(value: "6012954215", count: 64, expecting: "110919427531038119075187261440") + self.shiftLeftTest(value: "-6012954215", count: 64, expecting: "-110919427531038119075187261440") + self.shiftLeftTest(value: "5153960756", count: 64, expecting: "95073795031874600371220381696") + self.shiftLeftTest(value: "-5153960756", count: 64, expecting: "-95073795031874600371220381696") + self.shiftLeftTest(value: "4294967297", count: 64, expecting: "79228162532711081667253501952") + self.shiftLeftTest(value: "-4294967297", count: 64, expecting: "-79228162532711081667253501952") + self.shiftLeftTest(value: "3435973838", count: 64, expecting: "63382530033547562963286622208") + self.shiftLeftTest(value: "-3435973838", count: 64, expecting: "-63382530033547562963286622208") + self.shiftLeftTest(value: "2576980379", count: 64, expecting: "47536897534384044259319742464") + self.shiftLeftTest(value: "-2576980379", count: 64, expecting: "-47536897534384044259319742464") + self.shiftLeftTest(value: "1717986920", count: 64, expecting: "31691265035220525555352862720") + self.shiftLeftTest(value: "-1717986920", count: 64, expecting: "-31691265035220525555352862720") + self.shiftLeftTest(value: "858993461", count: 64, expecting: "15845632536057006851385982976") + self.shiftLeftTest(value: "-858993461", count: 64, expecting: "-15845632536057006851385982976") + } + + func test_shiftLeft_int_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: "8589934592", count: 121, expecting: "22835963083295358096932575511191922182123945984") + self.shiftLeftTest(value: "-8589934592", count: 121, expecting: "-22835963083295358096932575511191922182123945984") + self.shiftLeftTest(value: "7730941133", count: 121, expecting: "20552366775497513485553284309234252788023689216") + self.shiftLeftTest(value: "-7730941133", count: 121, expecting: "-20552366775497513485553284309234252788023689216") + self.shiftLeftTest(value: "6871947674", count: 121, expecting: "18268770467699668874173993107276583393923432448") + self.shiftLeftTest(value: "-6871947674", count: 121, expecting: "-18268770467699668874173993107276583393923432448") + self.shiftLeftTest(value: "6012954215", count: 121, expecting: "15985174159901824262794701905318913999823175680") + self.shiftLeftTest(value: "-6012954215", count: 121, expecting: "-15985174159901824262794701905318913999823175680") + self.shiftLeftTest(value: "5153960756", count: 121, expecting: "13701577852103979651415410703361244605722918912") + self.shiftLeftTest(value: "-5153960756", count: 121, expecting: "-13701577852103979651415410703361244605722918912") + self.shiftLeftTest(value: "4294967297", count: 121, expecting: "11417981544306135040036119501403575211622662144") + self.shiftLeftTest(value: "-4294967297", count: 121, expecting: "-11417981544306135040036119501403575211622662144") + self.shiftLeftTest(value: "3435973838", count: 121, expecting: "9134385236508290428656828299445905817522405376") + self.shiftLeftTest(value: "-3435973838", count: 121, expecting: "-9134385236508290428656828299445905817522405376") + self.shiftLeftTest(value: "2576980379", count: 121, expecting: "6850788928710445817277537097488236423422148608") + self.shiftLeftTest(value: "-2576980379", count: 121, expecting: "-6850788928710445817277537097488236423422148608") + self.shiftLeftTest(value: "1717986920", count: 121, expecting: "4567192620912601205898245895530567029321891840") + self.shiftLeftTest(value: "-1717986920", count: 121, expecting: "-4567192620912601205898245895530567029321891840") + self.shiftLeftTest(value: "858993461", count: 121, expecting: "2283596313114756594518954693572897635221635072") + self.shiftLeftTest(value: "-858993461", count: 121, expecting: "-2283596313114756594518954693572897635221635072") + } + + func test_shiftLeft_big_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_big_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_big_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 + + // Following tests assume: assert(Word.bitWidth == 64) + // Even if this is not the case then the tests should still pass. + + func test_shiftRight_int_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: "8589934592", count: 5, expecting: "268435456") + self.shiftRightTest(value: "-8589934592", count: 5, expecting: "-268435456") + self.shiftRightTest(value: "7730941133", count: 5, expecting: "241591910") + self.shiftRightTest(value: "-7730941133", count: 5, expecting: "-241591911") + self.shiftRightTest(value: "6871947674", count: 5, expecting: "214748364") + self.shiftRightTest(value: "-6871947674", count: 5, expecting: "-214748365") + self.shiftRightTest(value: "6012954215", count: 5, expecting: "187904819") + self.shiftRightTest(value: "-6012954215", count: 5, expecting: "-187904820") + self.shiftRightTest(value: "5153960756", count: 5, expecting: "161061273") + self.shiftRightTest(value: "-5153960756", count: 5, expecting: "-161061274") + self.shiftRightTest(value: "4294967297", count: 5, expecting: "134217728") + self.shiftRightTest(value: "-4294967297", count: 5, expecting: "-134217729") + self.shiftRightTest(value: "3435973838", count: 5, expecting: "107374182") + self.shiftRightTest(value: "-3435973838", count: 5, expecting: "-107374183") + self.shiftRightTest(value: "2576980379", count: 5, expecting: "80530636") + self.shiftRightTest(value: "-2576980379", count: 5, expecting: "-80530637") + self.shiftRightTest(value: "1717986920", count: 5, expecting: "53687091") + self.shiftRightTest(value: "-1717986920", count: 5, expecting: "-53687092") + self.shiftRightTest(value: "858993461", count: 5, expecting: "26843545") + self.shiftRightTest(value: "-858993461", count: 5, expecting: "-26843546") + } + + func test_shiftRight_int_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: "8589934592", count: 64, expecting: "0") + self.shiftRightTest(value: "-8589934592", count: 64, expecting: "-1") + self.shiftRightTest(value: "7730941133", count: 64, expecting: "0") + self.shiftRightTest(value: "-7730941133", count: 64, expecting: "-1") + self.shiftRightTest(value: "6871947674", count: 64, expecting: "0") + self.shiftRightTest(value: "-6871947674", count: 64, expecting: "-1") + self.shiftRightTest(value: "6012954215", count: 64, expecting: "0") + self.shiftRightTest(value: "-6012954215", count: 64, expecting: "-1") + self.shiftRightTest(value: "5153960756", count: 64, expecting: "0") + self.shiftRightTest(value: "-5153960756", count: 64, expecting: "-1") + self.shiftRightTest(value: "4294967297", count: 64, expecting: "0") + self.shiftRightTest(value: "-4294967297", count: 64, expecting: "-1") + self.shiftRightTest(value: "3435973838", count: 64, expecting: "0") + self.shiftRightTest(value: "-3435973838", count: 64, expecting: "-1") + self.shiftRightTest(value: "2576980379", count: 64, expecting: "0") + self.shiftRightTest(value: "-2576980379", count: 64, expecting: "-1") + self.shiftRightTest(value: "1717986920", count: 64, expecting: "0") + self.shiftRightTest(value: "-1717986920", count: 64, expecting: "-1") + self.shiftRightTest(value: "858993461", count: 64, expecting: "0") + self.shiftRightTest(value: "-858993461", count: 64, expecting: "-1") + } + + func test_shiftRight_int_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: "8589934592", count: 121, expecting: "0") + self.shiftRightTest(value: "-8589934592", count: 121, expecting: "-1") + self.shiftRightTest(value: "7730941133", count: 121, expecting: "0") + self.shiftRightTest(value: "-7730941133", count: 121, expecting: "-1") + self.shiftRightTest(value: "6871947674", count: 121, expecting: "0") + self.shiftRightTest(value: "-6871947674", count: 121, expecting: "-1") + self.shiftRightTest(value: "6012954215", count: 121, expecting: "0") + self.shiftRightTest(value: "-6012954215", count: 121, expecting: "-1") + self.shiftRightTest(value: "5153960756", count: 121, expecting: "0") + self.shiftRightTest(value: "-5153960756", count: 121, expecting: "-1") + self.shiftRightTest(value: "4294967297", count: 121, expecting: "0") + self.shiftRightTest(value: "-4294967297", count: 121, expecting: "-1") + self.shiftRightTest(value: "3435973838", count: 121, expecting: "0") + self.shiftRightTest(value: "-3435973838", count: 121, expecting: "-1") + self.shiftRightTest(value: "2576980379", count: 121, expecting: "0") + self.shiftRightTest(value: "-2576980379", count: 121, expecting: "-1") + self.shiftRightTest(value: "1717986920", count: 121, expecting: "0") + self.shiftRightTest(value: "-1717986920", count: 121, expecting: "-1") + self.shiftRightTest(value: "858993461", count: 121, expecting: "0") + self.shiftRightTest(value: "-858993461", count: 121, expecting: "-1") + } + + func test_shiftRight_big_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_big_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_big_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") + } +} diff --git a/Tests/BigIntTests/Nodejs/NodeTests.swift b/Tests/BigIntTests/Nodejs/NodeTests.swift new file mode 100644 index 00000000..00c2be19 --- /dev/null +++ b/Tests/BigIntTests/Nodejs/NodeTests.swift @@ -0,0 +1,331 @@ +//===--- NodeTests.swift --------------------------------------*- swift -*-===// +// +// This source file is part of the Swift Numerics open source project +// +// Copyright (c) 2023 Apple Inc. and the Swift Numerics project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// +//===----------------------------------------------------------------------===// + +import XCTest +import BigIntModule + +/// Tests generated by Node.js. +/// +/// We could have used some other BigInt library (for example GMP), +/// but this is a bit easier to manage. +class NodeTests: XCTestCase { + + // MARK: - Unary operations + + internal func plusTest(value: String, + expecting: String, + file: StaticString = #file, + line: UInt = #line) { + self.unaryOp(value: value, + expecting: expecting, + op: { +$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 }, + 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 }, + file: file, + line: line) + } + + internal typealias UnaryOperation = (BigInt) -> BigInt + + private func unaryOp(value _value: String, + expecting _expected: String, + op: UnaryOperation, + file: StaticString, + line: UInt) { + guard let value = self.parse(_value, file: file, line: line), + let expected = self.parse(_expected, file: file, line: line) else { + return + } + + let result = op(value) + XCTAssertEqual(result, expected, 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 }, + 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 }, + 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 }, + 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 }, + 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 }, + 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 }, + 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 }, + 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 }, + file: file, + line: line) + } + + internal typealias BinaryOperation = (BigInt, BigInt) -> BigInt + internal typealias InoutBinaryOperation = (inout BigInt, BigInt) -> Void + + // swiftlint:disable:next function_parameter_count + private func binaryOp(lhs _lhs: String, + rhs _rhs: String, + expecting _expected: String, + op: BinaryOperation, + inoutOp: InoutBinaryOperation, + file: StaticString, + line: UInt) { + guard let lhs = self.parse(_lhs, file: file, line: line), + let lhsBeforeInout = self.parse(_lhs, file: file, line: line), + let rhs = self.parse(_rhs, file: file, line: line), + let expected = self.parse(_expected, file: file, line: line) else { + return + } + + // Check 'standard' op + let result = op(lhs, rhs) + XCTAssertEqual(result, expected, file: file, line: line) + + // Check 'inout' op + var inoutLhs = lhs + inoutOp(&inoutLhs, rhs) + XCTAssertEqual(inoutLhs, expected, "INOUT!!1", 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(lhs, lhsBeforeInout, inoutMsg, 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) { + guard let lhs = self.parse(_lhs, file: file, line: line), + let rhs = self.parse(_rhs, file: file, line: line), + let div = self.parse(_div, file: file, line: line), + let mod = self.parse(_mod, file: file, line: line) else { + return + } + + let result = lhs.quotientAndRemainder(dividingBy: rhs) + XCTAssertEqual(result.quotient, div, "div", file: file, line: line) + XCTAssertEqual(result.remainder, mod, "mod", file: file, line: line) + } + + // MARK: - Power + + internal func powerTest(base _base: String, + exponent _exponent: Int, + expecting _expected: String, + file: StaticString = #file, + line: UInt = #line) { + guard let base = self.parse(_base, file: file, line: line), + let expected = self.parse(_expected, file: file, line: line) else { + return + } + + let exponent = BigInt(_exponent) + let result = base.power(exponent: exponent) + XCTAssertEqual(result, expected, 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 }, + 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 }, + file: file, + line: line) + } + + internal typealias ShiftOperation = (BigInt, BigInt) -> BigInt + internal typealias InoutShiftOperation = (inout BigInt, BigInt) -> Void + + // swiftlint:disable:next function_parameter_count + private func shiftOp(value _value: String, + count _count: Int, + expecting _expected: String, + op: ShiftOperation, + inoutOp: InoutShiftOperation, + file: StaticString, + line: UInt) { + guard let value = self.parse(_value, file: file, line: line), + let valueBeforeInout = self.parse(_value, file: file, line: line), + let expected = self.parse(_expected, file: file, line: line) else { + return + } + + let count = BigInt(_count) + + // Check 'standard' op + let result = op(value, count) + XCTAssertEqual(result, expected, file: file, line: line) + + // Check 'inout' op + var inoutValue = value + inoutOp(&inoutValue, count) + XCTAssertEqual(inoutValue, expected, "INOUT!!1", 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) + } + + // MARK: - Helpers + + /// Abstraction over `BigInt(_:radix:)`. + private func parse(_ string: String, file: StaticString, line: UInt) -> BigInt? { + guard let result = BigInt(string, radix: 10) else { + XCTFail("Unable to parse '\(string)'.", file: file, line: line) + return nil + } + + return result + } +} diff --git a/Tests/BigIntTests/Nodejs/README.md b/Tests/BigIntTests/Nodejs/README.md new file mode 100644 index 00000000..bbeef1c2 --- /dev/null +++ b/Tests/BigIntTests/Nodejs/README.md @@ -0,0 +1,27 @@ +Tests generated by [Node.js](https://nodejs.org/en/). + +Use `node NodeTests.generated.js > NodeTests.generated.swift` to regenerate. Requires Node `10.4.0` or newer. + +Example test: + +```Swift +func test_add_small_small() { + // 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") +} +```