![The Tatra Range](./tatra.jpg)

[![Build Status](](

# Berg

[Berg]( is a Minimum [Heap]( for Integers in Elixir.
The underlying library is a Two Pass [Pairing Heap]( in Erlang.

## What is it?

The interface is akin to a [Priority Queue](
You might be familiar with the Heap from algorithms such as **Heap-Sort**, **Dijkstra's**, or **Prim's**.

## Rationale

This is a program w/ which to learn sequential Erlang + how to build an Elixir library around it.
It's a fairly complex Erlang program (involving modules, functions, lists, and tuples) but its domain isn't complicated.
The project has OTP Application structure, documentation, Dialyzer declarations, and a test suite (`mix test`).

A **property** suite is written in Elixir (`mix property`).