1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- const EnumerableSet = artifacts.require('$EnumerableSet');
- const { mapValues } = require('../../helpers/map-values');
- const { shouldBehaveLikeSet } = require('./EnumerableSet.behavior');
- const getMethods = (ms) => {
- return mapValues(ms, m => (self, ...args) => self.methods[m](0, ...args));
- };
- contract('EnumerableSet', function (accounts) {
- beforeEach(async function () {
- this.set = await EnumerableSet.new();
- });
- // Bytes32Set
- describe('EnumerableBytes32Set', function () {
- shouldBehaveLikeSet(
- [ '0xdeadbeef', '0x0123456789', '0x42424242' ].map(e => e.padEnd(66, '0')),
- getMethods({
- add: '$add(uint256,bytes32)',
- remove: '$remove(uint256,bytes32)',
- contains: '$contains(uint256,bytes32)',
- length: '$length_EnumerableSet_Bytes32Set(uint256)',
- at: '$at_EnumerableSet_Bytes32Set(uint256,uint256)',
- values: '$values_EnumerableSet_Bytes32Set(uint256)',
- }),
- {
- addReturn: 'return$add_EnumerableSet_Bytes32Set_bytes32',
- removeReturn: 'return$remove_EnumerableSet_Bytes32Set_bytes32',
- },
- );
- });
- // AddressSet
- describe('EnumerableAddressSet', function () {
- shouldBehaveLikeSet(
- accounts,
- getMethods({
- add: '$add(uint256,address)',
- remove: '$remove(uint256,address)',
- contains: '$contains(uint256,address)',
- length: '$length_EnumerableSet_AddressSet(uint256)',
- at: '$at_EnumerableSet_AddressSet(uint256,uint256)',
- values: '$values_EnumerableSet_AddressSet(uint256)',
- }),
- {
- addReturn: 'return$add_EnumerableSet_AddressSet_address',
- removeReturn: 'return$remove_EnumerableSet_AddressSet_address',
- },
- );
- });
- // UintSet
- describe('EnumerableUintSet', function () {
- shouldBehaveLikeSet(
- [ 1234, 5678, 9101112 ].map(e => web3.utils.toBN(e)),
- getMethods({
- add: '$add(uint256,uint256)',
- remove: '$remove(uint256,uint256)',
- contains: '$contains(uint256,uint256)',
- length: '$length_EnumerableSet_UintSet(uint256)',
- at: '$at_EnumerableSet_UintSet(uint256,uint256)',
- values: '$values_EnumerableSet_UintSet(uint256)',
- }),
- {
- addReturn: 'return$add_EnumerableSet_UintSet_uint256',
- removeReturn: 'return$remove_EnumerableSet_UintSet_uint256',
- },
- );
- });
- });
|