diff --git a/contracts/test-utils/CHANGELOG.json b/contracts/test-utils/CHANGELOG.json index a5fff1105f..875f1fbc30 100644 --- a/contracts/test-utils/CHANGELOG.json +++ b/contracts/test-utils/CHANGELOG.json @@ -84,7 +84,11 @@ }, { "note": "Tweaks/Upgrades to `hex_utils`, most notably `hexSlice()`", - "pr": "TODO" + "pr": 2155 + }, + { + "note": "Add `shortZip()` to `lang_utils.ts`", + "pr": 2155 } ] }, diff --git a/contracts/test-utils/src/index.ts b/contracts/test-utils/src/index.ts index 4156b23991..7df55bf89a 100644 --- a/contracts/test-utils/src/index.ts +++ b/contracts/test-utils/src/index.ts @@ -50,3 +50,4 @@ export { export { blockchainTests, BlockchainTestsEnvironment, describe } from './mocha_blockchain'; export { chaiSetup, expect } from './chai_setup'; export { getCodesizeFromArtifact } from './codesize'; +export { shortZip } from './lang_utils'; diff --git a/contracts/test-utils/src/lang_utils.ts b/contracts/test-utils/src/lang_utils.ts new file mode 100644 index 0000000000..0a3d923260 --- /dev/null +++ b/contracts/test-utils/src/lang_utils.ts @@ -0,0 +1,9 @@ +import * as _ from 'lodash'; + +/** + * _.zip() that clips to the shortest array. + */ +export function shortZip(a: T1[], b: T2[]): Array<[T1, T2]> { + const minLength = Math.min(a.length, b.length); + return _.zip(a.slice(0, minLength), b.slice(0, minLength)) as Array<[T1, T2]>; +}