From b4b6d4d96988393e646a0d5764fcf30de1a51d43 Mon Sep 17 00:00:00 2001 From: Lawrence Forman Date: Wed, 18 Sep 2019 18:33:44 -0400 Subject: [PATCH] `@0x/contracts-test-utils`: Add `shortZip()`. --- contracts/test-utils/CHANGELOG.json | 6 +++++- contracts/test-utils/src/index.ts | 1 + contracts/test-utils/src/lang_utils.ts | 9 +++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 contracts/test-utils/src/lang_utils.ts 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]>; +}