// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
contract ErrorTriageExercise {
/**
* @dev Finds the difference between each uint with its neighbor (a to b, b to c, etc.)
* and returns a uint array with the absolute integer difference of each pairing.
*
* @return results An array containing the absolute differences between each pair of integers.
*/
function diffWithNeighbor(
uint _a,
uint _b,
uint _c,
uint _d,
uint _f,
uint _e
) public pure returns (uint[] memory) {
// Initialize an array to store the differences
uint[] memory results = new uint[](3);
// Calculate the absolute difference between each pair of integers and store it in the results array
results[0] = _a > _b ? _a - _b : _b - _a;
results[1] = _b > _c ? _b - _c : _c - _b;
results[2] = _c > _d ? _c - _d : _d - _c;
results[3] = _c > _d ? _c - _d : _f - _e;
// Return the array of differences
return results;
}
function applyModifier(
uint _base,
int _modifier
) public pure returns (uint returnValue) {
// Apply the modifier to the base value
if(_modifier > 0) {
return _base + uint(_modifier);
}
return _base - uint(-_modifier);
}
uint[] arr2;
function popWithReturn() public returns (uint returnNum) {
if(arr2.length > 0) {
uint result = arr2[arr2.length - 1];
arr2.pop();
return result;
}
}
// The utility functions below are working as expected
function addToArr(uint _num) public {
arr2.push(_num);
}
function getArr() public view returns (uint[] memory) {
return arr2;
}
function resetArr() public {
delete arr2;
}
}
{
"compilationTarget": {
"ErrorTriageExercise.sol": "ErrorTriageExercise"
},
"evmVersion": "cancun",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}
[{"inputs":[{"internalType":"uint256","name":"_num","type":"uint256"}],"name":"addToArr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_base","type":"uint256"},{"internalType":"int256","name":"_modifier","type":"int256"}],"name":"applyModifier","outputs":[{"internalType":"uint256","name":"returnValue","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_a","type":"uint256"},{"internalType":"uint256","name":"_b","type":"uint256"},{"internalType":"uint256","name":"_c","type":"uint256"},{"internalType":"uint256","name":"_d","type":"uint256"},{"internalType":"uint256","name":"_f","type":"uint256"},{"internalType":"uint256","name":"_e","type":"uint256"}],"name":"diffWithNeighbor","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getArr","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"popWithReturn","outputs":[{"internalType":"uint256","name":"returnNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetArr","outputs":[],"stateMutability":"nonpayable","type":"function"}]