ðŸŽ‰ Exercism Research is now launched. Help Exercism, help science and have some fun at research.exercism.io ðŸŽ‰

# PatrickMcSweeny's solution

## to Resistor Color in the JavaScript Track

Published at Aug 28 2019 · 0 comments
Instructions
Test suite
Solution

#### Note:

This exercise has changed since this solution was written.

Resistors have color coded bands, where each color maps to a number. The first 2 bands of a resistor have a simple encoding scheme: each color maps to a single number.

These colors are encoded as follows:

• Black: 0
• Brown: 1
• Red: 2
• Orange: 3
• Yellow: 4
• Green: 5
• Blue: 6
• Violet: 7
• Grey: 8
• White: 9

Mnemonics map the colors to the numbers, that, when stored as an array, happen to map to their index in the array: Better Be Right Or Your Great Big Values Go Wrong.

More information on the color encoding of resistors can be found in the Electronic color code Wikipedia article

## Setup

Go through the setup instructions for Javascript to install the necessary dependencies:

https://exercism.io/tracks/javascript/installation

## Requirements

Install assignment dependencies:

``````\$ npm install
``````

## Making the test suite pass

Execute the tests with:

``````\$ npm test
``````

In the test suites all tests but the first have been skipped.

Once you get a test passing, you can enable the next one by changing `xtest` to `test`.

## Source

Maud de Vries, Erik Schierboom https://github.com/exercism/problem-specifications/issues/1458

## Submitting Incomplete Solutions

It's possible to submit an incomplete solution so you can see how others have completed the exercise.

### resistor-color.spec.js

``````import { colorCode, COLORS } from './resistor-color'

describe('ResistorColor', () => {
describe('Color codes', () => {
test('Black', () => {
expect(colorCode("black")).toEqual(0)
})

xtest('White', () => {
expect(colorCode("white")).toEqual(9)
})

xtest('Orange', () => {
expect(colorCode("orange")).toEqual(3)
})
})

xtest('Colors', () => {
expect(COLORS).toEqual(["black","brown","red","orange","yellow","green","blue","violet","grey","white"])
})
})``````
``````export const COLORS = ["black", "brown", "red", "orange", "yellow", "green", "blue", "violet", "grey", "white"];

export const colorCode = (color) => {
return COLORS.indexOf(color);
};``````