1.0.0 • Published 2 years ago

powerset-generator v1.0.0

Weekly downloads
-
License
BlueOak-1.0.0
Repository
github
Last release
2 years ago
const powersetGenerator = require('powerset-generator');
const assert = require('assert');

// With arrays:
(() => {
  const next = powersetGenerator([0, 1, 2]) // function

  // Collect all subsets in an array by calling the function
  // until it returns `undefined`.
  const powerset = []
  while (true) {
    const subset = next()
    if (subset) powerset.push(subset)
    else break
  }

  assert.deepEqual(
    powerset,
    [[], [0], [1], [0, 1], [2], [0, 2], [1, 2], [0, 1, 2]]
  )

})();

// With Set objects:
(() => {
  const next = powersetGenerator(new Set([0, 1, 2]))
  
  const powerset = new Set()
  while (true) {
    const subset = next()
    if (subset) powerset.add(subset)
    else break
  }
  assert.deepEqual(
    powerset,
    new Set([
      new Set([]),
      new Set([0]),
      new Set([1]),
      new Set([0, 1]),
      new Set([2]),
      new Set([0, 2]),
      new Set([1, 2]),
      new Set([0, 1, 2])
    ])
  )
})()
1.0.0

2 years ago