123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- const { BN, constants } = require('@openzeppelin/test-helpers');
- const AddressToUintMapMock = artifacts.require('AddressToUintMapMock');
- const UintToAddressMapMock = artifacts.require('UintToAddressMapMock');
- const Bytes32ToBytes32MapMock = artifacts.require('Bytes32ToBytes32MapMock');
- const UintToUintMapMock = artifacts.require('UintToUintMapMock');
- const { shouldBehaveLikeMap } = require('./EnumerableMap.behavior');
- contract('EnumerableMap', function (accounts) {
- const [ accountA, accountB, accountC ] = accounts;
- const keyA = new BN('7891');
- const keyB = new BN('451');
- const keyC = new BN('9592328');
- const bytesA = '0xdeadbeef'.padEnd(66, '0');
- const bytesB = '0x0123456789'.padEnd(66, '0');
- const bytesC = '0x42424242'.padEnd(66, '0');
- // AddressToUintMap
- describe('AddressToUintMap', function () {
- beforeEach(async function () {
- this.map = await AddressToUintMapMock.new();
- });
- shouldBehaveLikeMap(
- [accountA, accountB, accountC],
- [keyA, keyB, keyC],
- new BN('0'),
- );
- });
- // UintToAddressMap
- describe('UintToAddressMap', function () {
- beforeEach(async function () {
- this.map = await UintToAddressMapMock.new();
- });
- shouldBehaveLikeMap(
- [keyA, keyB, keyC],
- [accountA, accountB, accountC],
- constants.ZERO_ADDRESS,
- );
- });
- // Bytes32ToBytes32Map
- describe('Bytes32ToBytes32Map', function () {
- beforeEach(async function () {
- this.map = await Bytes32ToBytes32MapMock.new();
- });
- shouldBehaveLikeMap(
- [keyA, keyB, keyC].map(k => ('0x' + k.toString(16)).padEnd(66, '0')),
- [bytesA, bytesB, bytesC],
- constants.ZERO_BYTES32,
- );
- });
- // UintToUintMap
- describe('UintToUintMap', function () {
- beforeEach(async function () {
- this.map = await UintToUintMapMock.new();
- });
- shouldBehaveLikeMap(
- [ keyA, keyB, keyC ],
- [ keyA, keyB, keyC ].map(k => k.add(new BN('1332'))),
- new BN('0'),
- );
- });
- });
|