binaryStateSeries = (initialState, transition, start, end) => {
let states;
let curr;
let i;
const n = d3.timeHour.count(start, end);
states = new Array(n);
states[0] = initialState;
curr = initialState;
for (i = 1; i < n; i++) {
curr = d3.randomUniform()() <= transition[curr][0] ? 0 : 1;
states[i] = curr;
}
const hours = time.timeHour.range(start, end);
return states.map((d, i) => ({ date: hours[i], value: d }));
}