# All Your Base in Go

#### Convert a number, represented as a sequence of digits in one base, to any other base.

1 | ```
exercism fetch go all-your-base
``` |

# All Your Base

Convert a number, represented as a sequence of digits in one base, to any other base.

Implement general base conversion. Given a number in base **a**,
represented as a sequence of digits, convert it to base **b**.

## Note

- Try to implement the conversion yourself. Do not use something else to perform the conversion for you.

## About Positional Notation

In positional notation, a number in base **b** can be understood as a linear
combination of powers of **b**.

The number 42, *in base 10*, means:

(4 * 10^{1)} + (2 * 10^{0)}

The number 101010, *in base 2*, means:

(1 * 2^{5)} + (0 * 2^{4)} + (1 * 2^{3)} + (0 * 2^{2)} + (1 * 2^{1)} + (0 * 2^{0)}

The number 1120, *in base 3*, means:

(1 * 3^{3)} + (1 * 3^{2)} + (2 * 3^{1)} + (0 * 3^{0)}

I think you got the idea!

*Yes. Those three numbers above are exactly the same. Congratulations!*

## Implementation

Assumptions:

- Zero is always represented in outputs as [0] instead of [].
- In no other instances are leading zeroes present in any outputs.
- Leading zeroes are accepted in inputs.
- An empty sequence of input digits is considered zero, rather than an error.

Handle problem cases by returning an error whose Error() method returns one of following messages:

- input base must be >= 2
- output base must be >= 2
- all digits must satisfy 0 <= d < input base

## Running the tests

To run the tests run the command `go test`

from within the exercise directory.

If the test suite contains benchmarks, you can run these with the `-bench`

flag:

1 |
```
go test -bench .
``` |

Keep in mind that each reviewer will run benchmarks on a different machine, with different specs, so the results from these benchmark tests may vary.

## Further information

For more detailed information about the Go track, including how to get help if you're having trouble, please visit the exercism.io Go language page.

## Submitting Incomplete Solutions

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