open OFC
open Bar_stack_values

let () =
  let bs = new_bar_stack_elem () in

  bar_stack_elem_set_keys bs [
      bs_key ~colour:"#FFB900" ~text:"Key 1" ~font_size:10 ();
      bs_key ~colour:"#FFB9F0" ~text:"Key 2" ~font_size:16 ();
      bs_key ~colour:"#FFB9F0" ~text:"Key 3" ();
      bs_key ~colour:"#FFB9F0" ~font_size:16 ();
      bs_key ~text:"Key 5" ~font_size:16 ();
    ];

  bar_stack_elem_add_values bs [
      [ Float 2.5; bs_value_int 5 ];
      [ bs_value_float 2.5; bs_value_int 5; bs_value_float 2.5 ];
      [ ];
      [ bs_value_int 5;
        bs_value_int 5;
        bs_value_int 2;
        bs_value_int 2;
        bs_value_int ~colour:"#ff00ff" 2;
        bs_value_int 2;
        bs_value_int 2; ];
    ];

  let a = new_arrow_elem ~start:(2, 5) ~end_:(4, 7)
                         ~barb_length:10 ~colour:"#ff00ff" () in

  let c = new_chart() in
  chart_add_element c bs;
  chart_add_element c a;
  chart_set_title c ~style:"font-size:16px;"
                    "Test stacked bar charts";

  let labels = new_labels ["January"; "February"; "March"; "April"] in

  chart_set_x_axis c ~max:4 ~steps:1 ~stroke:12 ~tick_size:6 ~labels ();
  chart_set_y_axis c ~max:20 ();

  print_chart c;
;;