Skip to content

Commit f477241

Browse files
✨ feat: Define API for integer knapsack.
1 parent ad4e56f commit f477241

File tree

3 files changed

+33
-0
lines changed

3 files changed

+33
-0
lines changed

src/index.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import integerKnapsack from './integerKnapsack';
2+
3+
/* eslint import/no-anonymous-default-export: [2, {"allowObject": true}] */
4+
export default {
5+
integerKnapsack,
6+
};
7+
8+
export {integerKnapsack};

src/integerKnapsack.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import assert from 'assert';
2+
3+
const integerKnapsack = (v, w, n, W) => {
4+
assert(v.length === n);
5+
assert(w.length === n);
6+
assert(Number.isInteger(W) && W >= 0);
7+
return 0;
8+
};
9+
10+
export default integerKnapsack;

test/src/wikipedia.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import test from 'ava';
2+
3+
import {integerKnapsack} from '../../src';
4+
5+
test('0-1 knapsack example', (t) => {
6+
const v = [505, 352, 458, 220, 354, 414, 498, 545, 473, 543];
7+
const w = [23, 26, 20, 18, 32, 27, 29, 26, 30, 27];
8+
const n = 10;
9+
const W = 67;
10+
const expected = 505;
11+
t.is(n, v.length);
12+
t.is(n, w.length);
13+
const result = integerKnapsack(v, w, n, W);
14+
t.is(expected, result);
15+
});

0 commit comments

Comments
 (0)