How can I compare two arrays in Solidity (with Truffle test framework)?
MyContract.sol --
pragma solidity 0.4.19;
contract MyContract {
uint[] public myArr;
MyContract(uint[] _initArr) public {
for (uint i=0; i < _initArr.length; i++) {
myArr.push(_initArr[i]);
}
}
function getMyArr public constant returns (uint[]) {
return myArr;
}
}
In Truffle test/TestMyContract.sol
pragma solidity 0.4.19;
import "truffle/Assert.sol";
import "truffle/DeployedAddresses.sol";
import "../contracts/MyContract.sol";
contract TestMyContract {
function testMyContract() public {
uint[] storage expectedArr;
expectedArr.push(0);
expectedArr.push(1);
expectedArr.push(2);
MyContract myContract = new MyContract(expectedArr);
Assert.equal(myContract.getMyArr(), expectedArr, "pass");
}
}
"truffle test" gives error --
TypeError: Member "equal" is not available in type(library Assert) outside of storage.
Assert.equal(myContract.getMyArr(), expectedArr, "pass");
^----------^
Is there a way to write unit test for Solidity arrays?