diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index c75e875..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: 2 -updates: - - package-ecosystem: github-actions - directory: "/" - schedule: - interval: weekly diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 4e05146..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: CI - -on: - push: - branches: - - master - pull_request: - types: - - opened - - synchronize - - reopened - -jobs: - test: - name: ${{ matrix.os }} ${{ matrix.ruby }} - runs-on: ${{ matrix.os }} - - strategy: - fail-fast: false - matrix: - os: - - ubuntu-latest - - macos-latest - - windows-latest - ruby: - - "4.0" - - "3.4" - - "3.3" - - "3.2" - - "3.1" - - "3.0" - - "2.7" - - "2.6" - - "2.5" - - "2.4" - - debug - include: - - { os: windows-latest , ruby: mingw } - - { os: windows-latest , ruby: mswin } - exclude: - - { os: windows-latest , ruby: "3.0" } - - { os: windows-latest , ruby: debug } - - { os: macos-latest , ruby: "2.5" } - - { os: macos-latest , ruby: "2.4" } - - steps: - - uses: actions/checkout@v6 - with: - fetch-depth: 1 - - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ matrix.ruby }} - - - run: bundle install --jobs 4 --retry 3 - - - run: bundle exec rake - - - run: bundle exec rake build - - - run: gem install pkg/*.gem diff --git a/.gitignore b/.gitignore index 0f6b7ef..cafeacf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,3 @@ +/.yardoc Gemfile.lock -pkg/ -tmp/ -*~ - -# to prevent yard documentation from accidentally being checked in -.yardoc/ -doc/ \ No newline at end of file +/src diff --git a/.yardopts b/.yardopts index 67159b1..a78a3db 100644 --- a/.yardopts +++ b/.yardopts @@ -1,6 +1,9 @@ ---output-dir doc/reference +--asset src/img:img +--load yard-helper.rb --markup markdown --no-private -lib/**/*.rb +--readme src/README.md +src/lib/**/*.rb - -doc/text/* +src/CHANGES.md +src/LICENSE.txt diff --git a/0.0.3/UnicodePlot.html b/0.0.3/UnicodePlot.html new file mode 100644 index 0000000..202af25 --- /dev/null +++ b/0.0.3/UnicodePlot.html @@ -0,0 +1,1352 @@ + + + + + + + Module: UnicodePlot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/plot.rb,
+ src/lib/unicode_plot/utils.rb,
src/lib/unicode_plot/canvas.rb,
src/lib/unicode_plot/barplot.rb,
src/lib/unicode_plot/boxplot.rb,
src/lib/unicode_plot/version.rb,
src/lib/unicode_plot/lineplot.rb,
src/lib/unicode_plot/renderer.rb,
src/lib/unicode_plot/grid_plot.rb,
src/lib/unicode_plot/histogram.rb,
src/lib/unicode_plot/dot_canvas.rb,
src/lib/unicode_plot/densityplot.rb,
src/lib/unicode_plot/scatterplot.rb,
src/lib/unicode_plot/ascii_canvas.rb,
src/lib/unicode_plot/lookup_canvas.rb,
src/lib/unicode_plot/braille_canvas.rb,
src/lib/unicode_plot/density_canvas.rb,
src/lib/unicode_plot/styled_printer.rb,
src/lib/unicode_plot/value_transformer.rb
+
+
+ +
+ +

Defined Under Namespace

+

+ + + Modules: BorderMaps, BorderPrinter, StyledPrinter, Utils, ValueTransformer, Version + + + + Classes: AsciiCanvas, Barplot, Boxplot, BrailleCanvas, Canvas, DensityCanvas, DotCanvas, GridPlot, Lineplot, LookupCanvas, Plot, Renderer, Scatterplot + + +

+ + +

+ Constant Summary + collapse +

+ +
+ +
VERSION = + +
+
"0.0.3"
+ +
BORDER_MAP = + +
+
{
+  solid:   BorderMaps::BORDER_SOLID,
+  corners: BorderMaps::BORDER_CORNERS,
+  barplot: BorderMaps::BORDER_BARPLOT,
+}.freeze
+ +
+ + + + + + + + + +

+ Class Method Summary + collapse +

+ + + + + + +
+

Class Method Details

+ + +
+

+ + .barplot(*args, width: Barplot::DEFAULT_WIDTH, color: Barplot::DEFAULT_COLOR, symbol: Barplot::DEFAULT_SYMBOL, border: :barplot, xscale: nil, xlabel: nil, data: nil, **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 79
+
+module_function def barplot(*args,
+                            width: Barplot::DEFAULT_WIDTH,
+                            color: Barplot::DEFAULT_COLOR,
+                            symbol: Barplot::DEFAULT_SYMBOL,
+                            border: :barplot,
+                            xscale: nil,
+                            xlabel: nil,
+                            data: nil,
+                            **kw)
+  case args.length
+  when 0
+    data = Hash(data)
+    keys = data.keys.map(&:to_s)
+    heights = data.values
+  when 2
+    keys = Array(args[0])
+    heights = Array(args[1])
+  else
+    raise ArgumentError, "invalid arguments"
+  end
+
+  unless keys.length == heights.length
+    raise ArgumentError, "The given vectors must be of the same length"
+  end
+  unless heights.min >= 0
+    raise ArgumentError, "All values have to be positive. Negative bars are not supported."
+  end
+
+  xlabel ||= ValueTransformer.transform_name(xscale)
+  plot = Barplot.new(heights, width, color, symbol, xscale,
+                     border: border, xlabel: xlabel,
+                     **kw)
+  keys.each_with_index do |key, i|
+    plot.annotate_row!(:l, i, key)
+  end
+
+  plot
+end
+
+
+ +
+

+ + .barplot!(plot, *args, data: nil, **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 118
+
+module_function def barplot!(plot,
+                             *args,
+                             data: nil,
+                             **kw)
+  case args.length
+  when 0
+    data = Hash(data)
+    keys = data.keys.map(&:to_s)
+    heights = data.values
+  when 2
+    keys = Array(args[0])
+    heights = Array(args[1])
+  else
+    raise ArgumentError, "invalid arguments"
+  end
+
+  unless keys.length == heights.length
+    raise ArgumentError, "The given vectors must be of the same length"
+  end
+  if keys.empty?
+    raise ArgumentError, "Can't append empty array to barplot"
+  end
+
+  cur_idx = plot.n_rows
+  plot.add_row!(heights)
+  keys.each_with_index do |key, i|
+    plot.annotate_row!(:l, cur_idx + i, key)
+  end
+  plot
+end
+
+
+ +
+

+ + .boxplot(*args, data: nil, border: :corners, color: Boxplot::DEFAULT_COLOR, width: Boxplot::DEFAULT_WIDTH, xlim: [0, 0], **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 100
+
+module_function def boxplot(*args,
+                            data: nil,
+                            border: :corners,
+                            color: Boxplot::DEFAULT_COLOR,
+                            width: Boxplot::DEFAULT_WIDTH,
+                            xlim: [0, 0],
+                            **kw)
+  case args.length
+  when 0
+    data = Hash(data)
+    text = data.keys
+    data = data.values
+  when 1
+    data = args[0]
+  when 2
+    text = Array(args[0])
+    data = args[1]
+  else
+    raise ArgumentError, "wrong number of arguments"
+  end
+
+  case data[0]
+  when Numeric
+    data = [data]
+  when Array
+    # do nothing
+  else
+    data = data.to_ary
+  end
+  text ||= Array.new(data.length, "")
+
+  unless text.length == data.length
+    raise ArgumentError, "wrong number of text"
+  end
+
+  unless xlim.length == 2
+    raise ArgumentError, "xlim must be a length 2 array"
+  end
+
+  min_x, max_x = Utils.extend_limits(data.map(&:minmax).flatten, xlim)
+  width = [width, Boxplot::MIN_WIDTH].max
+
+  plot = Boxplot.new(data[0], width, color, min_x, max_x,
+                     border: border, **kw)
+  (1 ... data.length).each do |i|
+    plot.add_series!(data[i])
+  end
+
+  mean_x = (min_x + max_x) / 2.0
+  min_x_str  = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s
+  mean_x_str = (Utils.roundable?(mean_x) ? mean_x.round : mean_x).to_s
+  max_x_str  = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s
+  plot.annotate!(:bl, min_x_str, color: :light_black)
+  plot.annotate!(:b,  mean_x_str, color: :light_black)
+  plot.annotate!(:br, max_x_str, color: :light_black)
+
+  text.each_with_index do |name, i|
+    plot.annotate_row!(:l, i*3+1, name) if name.length > 0
+  end
+
+  plot
+end
+
+
+ +
+

+ + .boxplot!(plot, *args, **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 163
+
+module_function def boxplot!(plot, *args, **kw)
+  case args.length
+  when 1
+    data = args[0]
+    name = kw[:name] || ""
+  when 2
+    name = args[0]
+    data = args[1]
+  else
+    raise ArgumentError, "worng number of arguments"
+  end
+
+  if data.empty?
+    raise ArgumentError, "Can't append empty array to boxplot"
+  end
+
+  plot.add_series!(data)
+
+  plot.annotate_row!(:l, (plot.n_data - 1)*3+1, name) if name && name != ""
+
+  min_x = plot.min_x
+  max_x = plot.max_x
+  mean_x = (min_x + max_x) / 2.0
+  min_x_str  = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s
+  mean_x_str = (Utils.roundable?(mean_x) ? mean_x.round : mean_x).to_s
+  max_x_str  = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s
+  plot.annotate!(:bl, min_x_str, color: :light_black)
+  plot.annotate!(:b,  mean_x_str, color: :light_black)
+  plot.annotate!(:br, max_x_str, color: :light_black)
+
+  plot
+end
+
+
+ +
+

+ + .densityplot(x, y, color: :auto, grid: false, name: "", **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+2
+3
+4
+5
+
+
# File 'src/lib/unicode_plot/densityplot.rb', line 2
+
+module_function def densityplot(x, y, color: :auto, grid: false, name: "", **kw)
+  plot = GridPlot.new(x, y, :density, grid: grid, **kw)
+  scatterplot!(plot, x, y, color: color, name: name)
+end
+
+
+ +
+

+ + .densityplot!(plot, x, y, **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+7
+8
+9
+
+
# File 'src/lib/unicode_plot/densityplot.rb', line 7
+
+module_function def densityplot!(plot, x, y, **kw)
+  scatterplot!(plot, x, y, **kw)
+end
+
+
+ +
+

+ + .histogram(x, nbins: nil, closed: :left, symbol: "▇", **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+
+
# File 'src/lib/unicode_plot/histogram.rb', line 4
+
+module_function def histogram(x,
+                              nbins: nil,
+                              closed: :left,
+                              symbol: "",
+                              **kw)
+  hist = x.histogram(*[nbins].compact, closed: closed)
+  edge, counts = hist.edge, hist.weights
+  labels = []
+  bin_width = edge[1] - edge[0]
+  pad_left, pad_right = 0, 0
+  (0 ... edge.length).each do |i|
+    val1 = Utils.float_round_log10(edge[i], bin_width)
+    val2 = Utils.float_round_log10(val1 + bin_width, bin_width)
+    a1 = val1.to_s.split('.', 2).map(&:length)
+    a2 = val2.to_s.split('.', 2).map(&:length)
+    pad_left  = [pad_left,  a1[0], a2[0]].max
+    pad_right = [pad_right, a1[1], a2[1]].max
+  end
+  l_str = hist.closed == :right ? "(" : "["
+  r_str = hist.closed == :right ? "]" : ")"
+  counts.each_with_index do |n, i|
+    val1 = Utils.float_round_log10(edge[i], bin_width)
+    val2 = Utils.float_round_log10(val1 + bin_width, bin_width)
+    a1 = val1.to_s.split('.', 2).map(&:length)
+    a2 = val2.to_s.split('.', 2).map(&:length)
+    labels[i] = "\e[90m#{l_str}\e[0m" +
+                (" " * (pad_left - a1[0])) +
+                val1.to_s +
+                (" " * (pad_right - a1[1])) +
+                "\e[90m, \e[0m" +
+                (" " * (pad_left - a2[0])) +
+                val2.to_s +
+                (" " * (pad_right - a2[1])) +
+                "\e[90m#{r_str}\e[0m"
+  end
+  xscale = kw.delete(:xscale)
+  xlabel = kw.delete(:xlabel) ||
+           ValueTransformer.transform_name(xscale, "Frequency")
+  barplot(labels, counts,
+          symbol: symbol,
+          xscale: xscale,
+          xlabel: xlabel,
+          **kw)
+end
+
+
+ +
+

+ + .lineplot(*args, canvas: :braille, color: :auto, name: "", **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+
+
# File 'src/lib/unicode_plot/lineplot.rb', line 7
+
+module_function def lineplot(*args,
+                             canvas: :braille,
+                             color: :auto,
+                             name: "",
+                             **kw)
+  case args.length
+  when 1
+    # y only
+    y = Array(args[0])
+    x = Array(1 .. y.length)
+  when 2
+    # x and y
+    x = Array(args[0])
+    y = Array(args[1])
+  else
+    raise ArgumentError, "wrong number of arguments"
+  end
+
+  case x[0]
+  when Time, Date
+    if x[0].is_a? Time
+      d = x.map(&:to_f)
+    else
+      origin = Date.new(1, 1, 1)
+      d = x.map {|xi| xi - origin }
+    end
+    plot = lineplot(d, y, canvas: canvas, color: color, name: name, **kw)
+    xmin, xmax = x.minmax
+    plot.annotate!(:bl, xmin.to_s, color: :light_black)
+    plot.annotate!(:br, xmax.to_s, color: :light_black)
+    plot
+  else
+    plot = Lineplot.new(x, y, canvas, **kw)
+    lineplot!(plot, x, y, color: color, name: name)
+  end
+end
+
+
+ +
+

+ + .lineplot!(plot, *args, color: :auto, name: "") ⇒ Object + + + + + +

+ + + + +
+
+
+
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+
+
# File 'src/lib/unicode_plot/lineplot.rb', line 44
+
+module_function def lineplot!(plot,
+                              *args,
+                              color: :auto,
+                              name: "")
+  case args.length
+  when 1
+    # y only
+    y = Array(args[0])
+    x = Array(1 .. y.length)
+  when 2
+    # x and y
+    x = Array(args[0])
+    y = Array(args[1])
+
+    if x.length == 1 && y.length == 1
+      # intercept and slope
+      intercept = x[0]
+      slope = y[0]
+      xmin = plot.origin_x
+      xmax = plot.origin_x + plot.plot_width
+      ymin = plot.origin_y
+      ymax = plot.origin_y + plot.plot_height
+      x = [xmin, xmax]
+      y = [intercept + xmin*slope, intercept + xmax*slope]
+    end
+  else
+    raise ArgumentError, "wrong number of arguments"
+  end
+
+  case x[0]
+  when Time, Date
+    if x[0].is_a? Time
+      d = x.map(&:to_f)
+    else
+      origin = Date.new(1, 1, 1)
+      d = x.map {|xi| xi - origin }
+    end
+    lineplot!(plot, d, y, color: color, name: name)
+  else
+    color = color == :auto ? plot.next_color : color
+    plot.annotate!(:r, name.to_s, color: color) unless name.nil? || name == ""
+    plot.lines!(x, y, color)
+  end
+  plot
+end
+
+
+ +
+

+ + .scatterplot(*args, canvas: :braille, color: :auto, name: "", **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+
+
# File 'src/lib/unicode_plot/scatterplot.rb', line 5
+
+module_function def scatterplot(*args,
+                                canvas: :braille,
+                                color: :auto,
+                                name: "",
+                                **kw)
+  case args.length
+  when 1
+    # y only
+    y = Array(args[0])
+    x = Array(1 .. y.length)
+  when 2
+    # x and y
+    x = Array(args[0])
+    y = Array(args[1])
+  else
+    raise ArgumentError, "worng number of arguments"
+  end
+
+  plot = Scatterplot.new(x, y, canvas, **kw)
+  scatterplot!(plot, x, y, color: color, name: name)
+end
+
+
+ +
+

+ + .scatterplot!(plot, *args, color: :auto, name: "") ⇒ Object + + + + + +

+ + + + +
+
+
+
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+
+
# File 'src/lib/unicode_plot/scatterplot.rb', line 27
+
+module_function def scatterplot!(plot,
+                                 *args,
+                                 color: :auto,
+                                 name: "")
+  case args.length
+  when 1
+    # y only
+    y = Array(args[0])
+    x = Array(1 .. y.length)
+  when 2
+    # x and y
+    x = Array(args[0])
+    y = Array(args[1])
+  else
+    raise ArgumentError, "worng number of arguments"
+  end
+
+  color = color == :auto ? plot.next_color : color
+  plot.annotate!(:r, name.to_s, color: color) unless name.nil? || name == ""
+  plot.points!(x, y, color)
+  plot
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/AsciiCanvas.html b/0.0.3/UnicodePlot/AsciiCanvas.html new file mode 100644 index 0000000..6bcd674 --- /dev/null +++ b/0.0.3/UnicodePlot/AsciiCanvas.html @@ -0,0 +1,482 @@ + + + + + + + Class: UnicodePlot::AsciiCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::AsciiCanvas + + + +

+
+ +
+
Inherits:
+
+ LookupCanvas + + + show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/ascii_canvas.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
ASCII_SIGNS = + +
+
[
+  [ 0b100_000_000, 0b000_100_000, 0b000_000_100 ].freeze,
+  [ 0b010_000_000, 0b000_010_000, 0b000_000_010 ].freeze,
+  [ 0b001_000_000, 0b000_001_000, 0b000_000_001 ].freeze
+].freeze
+ +
ASCII_LOOKUP = + +
+
{
+  0b101_000_000 => '"',
+  0b111_111_111 => '@',
+ #0b011_110_011 => '$',
+  0b010_000_000 => '\'',
+  0b010_100_010 => '(',
+  0b010_001_010 => ')',
+  0b000_010_000 => '*',
+  0b010_111_010 => '+',
+  0b000_010_010 => ',',
+  0b000_100_100 => ',',
+  0b000_001_001 => ',',
+  0b000_111_000 => '-',
+  0b000_000_010 => '.',
+  0b000_000_100 => '.',
+  0b000_000_001 => '.',
+  0b001_010_100 => '/',
+  0b010_100_000 => '/',
+  0b001_010_110 => '/',
+  0b011_010_010 => '/',
+  0b001_010_010 => '/',
+  0b110_010_111 => '1',
+ #0b111_010_100 => '7',
+  0b010_000_010 => ':',
+  0b111_000_111 => '=',
+ #0b010_111_101 => 'A',
+ #0b011_100_011 => 'C',
+ #0b110_101_110 => 'D',
+ #0b111_110_100 => 'F',
+ #0b011_101_011 => 'G',
+ #0b101_111_101 => 'H',
+  0b111_010_111 => 'I',
+ #0b011_001_111 => 'J',
+ #0b101_110_101 => 'K',
+  0b100_100_111 => 'L',
+ #0b111_111_101 => 'M',
+ #0b101_101_101 => 'N',
+ #0b111_101_111 => 'O',
+ #0b111_111_100 => 'P',
+  0b111_010_010 => 'T',
+ #0b101_101_111 => 'U',
+  0b101_101_010 => 'V',
+ #0b101_111_111 => 'W',
+  0b101_010_101 => 'X',
+  0b101_010_010 => 'Y',
+  0b110_100_110 => '[',
+  0b010_001_000 => '\\',
+  0b100_010_001 => '\\',
+  0b110_010_010 => '\\',
+  0b100_010_011 => '\\',
+  0b100_010_010 => '\\',
+  0b011_001_011 => ']',
+  0b010_101_000 => '^',
+  0b000_000_111 => '_',
+  0b100_000_000 => '`',
+ #0b000_111_111 => 'a',
+ #0b100_111_111 => 'b',
+ #0b001_111_111 => 'd',
+ #0b001_111_010 => 'f',
+ #0b100_111_101 => 'h',
+ #0b100_101_101 => 'k',
+  0b110_010_011 => 'l',
+ #0b000_111_101 => 'n',
+  0b000_111_100 => 'r',
+ #0b000_101_111 => 'u',
+  0b000_101_010 => 'v',
+  0b011_110_011 => '{',
+  0b010_010_010 => '|',
+  0b100_100_100 => '|',
+  0b001_001_001 => '|',
+  0b110_011_110 => '}',
+}.freeze
+ +
ASCII_DECODE = + +
+
[' ']
+ +
PIXEL_PER_CHAR = + +
+
3
+ +
+ + + + + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Canvas

+

#height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from LookupCanvas

+

#pixel!, #print_row

+ + + + + + + + + +

Methods inherited from Canvas

+

#char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

+ + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(width, height, **kw) ⇒ AsciiCanvas + + + + + +

+
+

Returns a new instance of AsciiCanvas.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+106
+107
+108
+109
+110
+
+
# File 'src/lib/unicode_plot/ascii_canvas.rb', line 106
+
+def initialize(width, height, **kw)
+  super(width, height,
+        PIXEL_PER_CHAR, PIXEL_PER_CHAR,
+        **kw)
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #lookup_decode(code) ⇒ Object + + + + + +

+ + + + +
+
+
+
+116
+117
+118
+
+
# File 'src/lib/unicode_plot/ascii_canvas.rb', line 116
+
+def lookup_decode(code)
+  ASCII_DECODE[code]
+end
+
+
+ +
+

+ + #lookup_encode(x, y) ⇒ Object + + + + + +

+ + + + +
+
+
+
+112
+113
+114
+
+
# File 'src/lib/unicode_plot/ascii_canvas.rb', line 112
+
+def lookup_encode(x, y)
+  ASCII_SIGNS[x][y]
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/Barplot.html b/0.0.3/UnicodePlot/Barplot.html new file mode 100644 index 0000000..1f2070c --- /dev/null +++ b/0.0.3/UnicodePlot/Barplot.html @@ -0,0 +1,785 @@ + + + + + + + Class: UnicodePlot::Barplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Barplot + + + +

+
+ +
+
Inherits:
+
+ Plot + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + +
+
Includes:
+
ValueTransformer
+
+ + + + + + +
+
Defined in:
+
src/lib/unicode_plot/barplot.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
MIN_WIDTH = + +
+
10
+ +
DEFAULT_WIDTH = + +
+
40
+ +
DEFAULT_COLOR = + +
+
:green
+ +
DEFAULT_SYMBOL = + +
+
""
+ +
+ + + + + + +

Constants included + from ValueTransformer

+

ValueTransformer::PREDEFINED_TRANSFORM_FUNCTIONS

+ + + +

Constants inherited + from Plot

+

Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING

+ + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + +

Instance Attribute Summary collapse

+ + + + + + +

Attributes inherited from Plot

+

#border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods included from ValueTransformer

+

transform_name, #transform_values

+ + + + + + + + + +

Methods inherited from Plot

+

#annotate!, #annotate_row!, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(bars, width, color, symbol, transform, **kw) ⇒ Barplot + + + + + +

+
+

Returns a new instance of Barplot.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 10
+
+def initialize(bars, width, color, symbol, transform, **kw)
+  if symbol.length > 1
+    raise ArgumentError, "symbol must be a single character"
+  end
+  @bars = bars
+  @symbol = symbol
+  @max_freq, i = find_max(transform_values(transform, bars))
+  @max_len = bars[i].to_s.length
+  @width = [width, max_len + 7, MIN_WIDTH].max
+  @color = color
+  @symbol = symbol
+  @transform = transform
+  super(**kw)
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #max_freqObject (readonly) + + + + + +

+
+

Returns the value of attribute max_freq.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+25
+26
+27
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 25
+
+def max_freq
+  @max_freq
+end
+
+
+ + + +
+

+ + #max_lenObject (readonly) + + + + + +

+
+

Returns the value of attribute max_len.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 26
+
+def max_len
+  @max_len
+end
+
+
+ + + +
+

+ + #widthObject (readonly) + + + + + +

+
+

Returns the value of attribute width.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+27
+28
+29
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 27
+
+def width
+  @width
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #add_row!(bars) ⇒ Object + + + + + +

+ + + + +
+
+
+
+37
+38
+39
+40
+41
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 37
+
+def add_row!(bars)
+  @bars.concat(bars)
+  @max_freq, i = find_max(transform_values(@transform, bars))
+  @max_len = @bars[i].to_s.length
+end
+
+
+ +
+

+ + #n_columnsObject + + + + + +

+ + + + +
+
+
+
+33
+34
+35
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 33
+
+def n_columns
+  @width
+end
+
+
+ +
+

+ + #n_rowsObject + + + + + +

+ + + + +
+
+
+
+29
+30
+31
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 29
+
+def n_rows
+  @bars.length
+end
+
+
+ +
+ + + + + +
+
+
+
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 43
+
+def print_row(out, row_index)
+  check_row_index(row_index)
+  bar = @bars[row_index]
+  max_bar_width = [width - 2 - max_len, 1].max
+  val = transform_values(@transform, bar)
+  bar_len = max_freq > 0 ?
+    ([val, 0].max.fdiv(max_freq) * max_bar_width).round :
+    0
+  bar_str = max_freq > 0 ? @symbol * bar_len : ""
+  bar_lbl = bar.to_s
+  print_styled(out, bar_str, color: @color)
+  print_styled(out, " ", bar_lbl, color: :normal)
+  pan_len = [max_bar_width + 1 + max_len - bar_len - bar_lbl.length, 0].max
+  pad = " " * pan_len.round
+  out.print(pad)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/BorderMaps.html b/0.0.3/UnicodePlot/BorderMaps.html new file mode 100644 index 0000000..4203461 --- /dev/null +++ b/0.0.3/UnicodePlot/BorderMaps.html @@ -0,0 +1,158 @@ + + + + + + + Module: UnicodePlot::BorderMaps + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot::BorderMaps + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/renderer.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
BORDER_SOLID = + +
+
{
+  tl: "",
+  tr: "",
+  bl: "",
+  br: "",
+  t:  "",
+  l:  "",
+  b:  "",
+  r:  ""
+}.freeze
+ +
BORDER_CORNERS = + +
+
{
+  tl: "",
+  tr: "",
+  bl: "",
+  br: "",
+  t:  " ",
+  l:  " ",
+  b:  " ",
+  r:  " ",
+}.freeze
+ +
BORDER_BARPLOT = + +
+
{
+  tl: "",
+  tr: "",
+  bl: "",
+  br: "",
+  t:  " ",
+  l:  "",
+  b:  " ",
+  r:  " ",
+}.freeze
+ +
+ + + + + + + + + + +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/BorderPrinter.html b/0.0.3/UnicodePlot/BorderPrinter.html new file mode 100644 index 0000000..86e7880 --- /dev/null +++ b/0.0.3/UnicodePlot/BorderPrinter.html @@ -0,0 +1,263 @@ + + + + + + + Module: UnicodePlot::BorderPrinter + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot::BorderPrinter + + + +

+
+ + + + + + +
+
Includes:
+
StyledPrinter
+
+ + + + +
+
Included in:
+
Canvas, Renderer
+
+ + + +
+
Defined in:
+
src/lib/unicode_plot/renderer.rb
+
+ +
+ + + + +

Constant Summary

+ +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+ + +
+

Instance Method Details

+ + +
+ + + + + +
+
+
+
+52
+53
+54
+55
+56
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 52
+
+def print_border_bottom(out, padding, length, border=:solid, color: :light_black)
+  return if border == :none
+  b = BORDER_MAP[border]
+  print_styled(out, padding, b[:bl], b[:b] * length, b[:br], color: color)
+end
+
+
+ +
+ + + + + +
+
+
+
+46
+47
+48
+49
+50
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 46
+
+def print_border_top(out, padding, length, border=:solid, color: :light_black)
+  return if border == :none
+  b = BORDER_MAP[border]
+  print_styled(out, padding, b[:tl], b[:t] * length, b[:tr], color: color)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/Boxplot.html b/0.0.3/UnicodePlot/Boxplot.html new file mode 100644 index 0000000..4530b8b --- /dev/null +++ b/0.0.3/UnicodePlot/Boxplot.html @@ -0,0 +1,791 @@ + + + + + + + Class: UnicodePlot::Boxplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Boxplot + + + +

+
+ +
+
Inherits:
+
+ Plot + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/boxplot.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
MIN_WIDTH = + +
+
10
+ +
DEFAULT_COLOR = + +
+
:green
+ +
DEFAULT_WIDTH = + +
+
40
+ +
+ + + + + + +

Constants inherited + from Plot

+

Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING

+ + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + +

Instance Attribute Summary collapse

+ + + + + + +

Attributes inherited from Plot

+

#border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from Plot

+

#annotate!, #annotate_row!, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(data, width, color, min_x, max_x, **kw) ⇒ Boxplot + + + + + +

+
+

Returns a new instance of Boxplot.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 9
+
+def initialize(data, width, color, min_x, max_x, **kw)
+  if min_x == max_x
+    min_x -= 1
+    max_x += 1
+  end
+  width = [width, MIN_WIDTH].max
+  @data = [data.percentile([0, 25, 50, 75, 100])]
+  @color = color
+  @width = [width, MIN_WIDTH].max
+  @min_x = min_x
+  @max_x = max_x
+  super(**kw)
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #max_xObject (readonly) + + + + + +

+
+

Returns the value of attribute max_x.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+23
+24
+25
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 23
+
+def max_x
+  @max_x
+end
+
+
+ + + +
+

+ + #min_xObject (readonly) + + + + + +

+
+

Returns the value of attribute min_x.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+23
+24
+25
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 23
+
+def min_x
+  @min_x
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #add_series!(data) ⇒ Object + + + + + +

+ + + + +
+
+
+
+37
+38
+39
+40
+41
+42
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 37
+
+def add_series!(data)
+  mi, ma = data.minmax
+  @data << data.percentile([0, 25, 50, 75, 100])
+  @min_x = [mi, @min_x].min
+  @max_x = [ma, @max_x].max
+end
+
+
+ +
+

+ + #n_columnsObject + + + + + +

+ + + + +
+
+
+
+33
+34
+35
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 33
+
+def n_columns
+  @width
+end
+
+
+ +
+

+ + #n_dataObject + + + + + +

+ + + + +
+
+
+
+25
+26
+27
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 25
+
+def n_data
+  @data.length
+end
+
+
+ +
+

+ + #n_rowsObject + + + + + +

+ + + + +
+
+
+
+29
+30
+31
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 29
+
+def n_rows
+  3 * @data.length
+end
+
+
+ +
+ + + + + +
+
+
+
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 44
+
+def print_row(out, row_index)
+  check_row_index(row_index)
+  series = @data[(row_index / 3.0).to_i]
+
+  series_row = row_index % 3
+
+  min_char       = ['', '' , ''][series_row]
+  line_char      = [' ', '' , ' '][series_row]
+  left_box_char  = ['', '' , ''][series_row]
+  line_box_char  = ['', ' ' , ''][series_row]
+  median_char    = ['', '' , ''][series_row]
+  right_box_char = ['', '' , ''][series_row]
+  max_char       = ['', '' , ''][series_row]
+
+  line = (0 ... @width).map { ' ' }
+
+  # Draw shapes first - this is most important,
+  # so they'll always be drawn even if there's not enough space
+
+  transformed = transform(series)
+  line[transformed[0] - 1] = min_char
+  line[transformed[1] - 1] = left_box_char
+  line[transformed[2] - 1] = median_char
+  line[transformed[3] - 1] = right_box_char
+  line[transformed[4] - 1] = max_char
+
+  (transformed[0] ... (transformed[1] - 1)).each do |i|
+    line[i] = line_char
+  end
+  (transformed[1] ... (transformed[2] - 1)).each do |i|
+    line[i] = line_box_char
+  end
+  (transformed[2] ... (transformed[3] - 1)).each do |i|
+    line[i] = line_box_char
+  end
+  (transformed[3] ... (transformed[4] - 1)).each do |i|
+    line[i] = line_char
+  end
+
+  print_styled(out, line.join(''), color: @color)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/BrailleCanvas.html b/0.0.3/UnicodePlot/BrailleCanvas.html new file mode 100644 index 0000000..c7ad923 --- /dev/null +++ b/0.0.3/UnicodePlot/BrailleCanvas.html @@ -0,0 +1,460 @@ + + + + + + + Class: UnicodePlot::BrailleCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::BrailleCanvas + + + +

+
+ +
+
Inherits:
+
+ Canvas + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/braille_canvas.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
X_PIXEL_PER_CHAR = + +
+
2
+ +
Y_PIXEL_PER_CHAR = + +
+
4
+ +
BRAILLE_SIGNS = + +
+
[
+  [
+    0x2801,
+    0x2802,
+    0x2804,
+    0x2840,
+  ].freeze,
+  [
+    0x2808,
+    0x2810,
+    0x2820,
+    0x2880
+  ].freeze
+].freeze
+ +
+ + + + + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Canvas

+

#height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from Canvas

+

#char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

+ + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(width, height, **kw) ⇒ BrailleCanvas + + + + + +

+
+

Returns a new instance of BrailleCanvas.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+21
+22
+23
+24
+25
+26
+27
+28
+29
+
+
# File 'src/lib/unicode_plot/braille_canvas.rb', line 21
+
+def initialize(width, height, **kw)
+  super(width, height,
+        width * X_PIXEL_PER_CHAR,
+        height * Y_PIXEL_PER_CHAR,
+        "\u{2800}",
+        x_pixel_per_char: X_PIXEL_PER_CHAR,
+        y_pixel_per_char: Y_PIXEL_PER_CHAR,
+        **kw)
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #pixel!(pixel_x, pixel_y, color) ⇒ Object + + + + + +

+ + + + +
+
+
+
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+
+
# File 'src/lib/unicode_plot/braille_canvas.rb', line 31
+
+def pixel!(pixel_x, pixel_y, color)
+  unless 0 <= pixel_x && pixel_x <= pixel_width &&
+         0 <= pixel_y && pixel_y <= pixel_height
+    return color
+  end
+  pixel_x -= 1 unless pixel_x < pixel_width
+  pixel_y -= 1 unless pixel_y < pixel_height
+  tx = pixel_x.fdiv(pixel_width) * width
+  char_x = tx.floor + 1
+  char_x_off = pixel_x % X_PIXEL_PER_CHAR + 1
+  char_x += 1 if char_x < tx.round + 1 && char_x_off == 1
+
+  char_y = (pixel_y.fdiv(pixel_height) * height).floor + 1
+  char_y_off = pixel_y % Y_PIXEL_PER_CHAR + 1
+
+  index = index_at(char_x - 1, char_y - 1)
+  if index
+    @grid[index] = (@grid[index].ord | BRAILLE_SIGNS[char_x_off - 1][char_y_off - 1]).chr(Encoding::UTF_8)
+    @colors[index] |= COLOR_ENCODE[color]
+  end
+  color
+end
+
+
+ +
+ + + + + +
+
+
+
+54
+55
+56
+57
+58
+59
+60
+61
+62
+
+
# File 'src/lib/unicode_plot/braille_canvas.rb', line 54
+
+def print_row(out, row_index)
+  unless 0 <= row_index && row_index < height
+    raise ArgumentError, "row_index out of bounds"
+  end
+  y = row_index
+  (0 ... width).each do |x|
+    print_color(out, color_at(x, y), char_at(x, y))
+  end
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/Canvas.html b/0.0.3/UnicodePlot/Canvas.html new file mode 100644 index 0000000..8c81254 --- /dev/null +++ b/0.0.3/UnicodePlot/Canvas.html @@ -0,0 +1,1715 @@ + + + + + + + Class: UnicodePlot::Canvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Canvas + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + +
+
Includes:
+
BorderPrinter
+
+ + + + + + +
+
Defined in:
+
src/lib/unicode_plot/canvas.rb
+
+ +
+ +
+

Direct Known Subclasses

+

BrailleCanvas, DensityCanvas, LookupCanvas

+
+ + + +

Constant Summary

+ +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + +

Instance Attribute Summary collapse

+ + + + + + +

+ Class Method Summary + collapse +

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(width, height, pixel_width, pixel_height, fill_char, origin_x: 0, origin_y: 0, plot_width: 1, plot_height: 1, x_pixel_per_char: 1, y_pixel_per_char: 1) ⇒ Canvas + + + + + +

+
+

Returns a new instance of Canvas.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 20
+
+def initialize(width, height, pixel_width, pixel_height, fill_char,
+               origin_x: 0,
+               origin_y: 0,
+               plot_width: 1,
+               plot_height: 1,
+               x_pixel_per_char: 1,
+               y_pixel_per_char: 1)
+  @width = width
+  @height = height
+  @pixel_width = check_positive(pixel_width, :pixel_width)
+  @pixel_height = check_positive(pixel_height, :pixel_height)
+  @origin_x = origin_x
+  @origin_y = origin_y
+  @plot_width = plot_width
+  @plot_height = plot_height
+  @x_pixel_per_char = x_pixel_per_char
+  @y_pixel_per_char = y_pixel_per_char
+  @grid = Array.new(@width * @height, fill_char)
+  @colors = Array.new(@width * @height, COLOR_ENCODE[:normal])
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #heightObject (readonly) + + + + + +

+
+

Returns the value of attribute height.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+42
+43
+44
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 42
+
+def height
+  @height
+end
+
+
+ + + +
+

+ + #origin_xObject (readonly) + + + + + +

+
+

Returns the value of attribute origin_x.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+45
+46
+47
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 45
+
+def origin_x
+  @origin_x
+end
+
+
+ + + +
+

+ + #origin_yObject (readonly) + + + + + +

+
+

Returns the value of attribute origin_y.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+46
+47
+48
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 46
+
+def origin_y
+  @origin_y
+end
+
+
+ + + +
+

+ + #pixel_heightObject (readonly) + + + + + +

+
+

Returns the value of attribute pixel_height.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+44
+45
+46
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 44
+
+def pixel_height
+  @pixel_height
+end
+
+
+ + + +
+

+ + #pixel_widthObject (readonly) + + + + + +

+
+

Returns the value of attribute pixel_width.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+43
+44
+45
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 43
+
+def pixel_width
+  @pixel_width
+end
+
+
+ + + +
+

+ + #plot_heightObject (readonly) + + + + + +

+
+

Returns the value of attribute plot_height.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+48
+49
+50
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 48
+
+def plot_height
+  @plot_height
+end
+
+
+ + + +
+

+ + #plot_widthObject (readonly) + + + + + +

+
+

Returns the value of attribute plot_width.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+47
+48
+49
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 47
+
+def plot_width
+  @plot_width
+end
+
+
+ + + +
+

+ + #widthObject (readonly) + + + + + +

+
+

Returns the value of attribute width.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+41
+42
+43
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 41
+
+def width
+  @width
+end
+
+
+ + + +
+

+ + #x_pixel_per_charObject (readonly) + + + + + +

+
+

Returns the value of attribute x_pixel_per_char.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+49
+50
+51
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 49
+
+def x_pixel_per_char
+  @x_pixel_per_char
+end
+
+
+ + + +
+

+ + #y_pixel_per_charObject (readonly) + + + + + +

+
+

Returns the value of attribute y_pixel_per_char.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+50
+51
+52
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 50
+
+def y_pixel_per_char
+  @y_pixel_per_char
+end
+
+
+ +
+ + +
+

Class Method Details

+ + +
+

+ + .create(canvas_type, width, height, **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 5
+
+def self.create(canvas_type, width, height, **kw)
+  case canvas_type
+  when :ascii
+    AsciiCanvas.new(width, height, **kw)
+  when :braille
+    BrailleCanvas.new(width, height, **kw)
+  when :density
+    DensityCanvas.new(width, height, **kw)
+  when :dot
+    DotCanvas.new(width, height, **kw)
+  else
+    raise ArgumentError, "unknown canvas type: #{canvas_type}"
+  end
+end
+
+
+ +
+ +
+

Instance Method Details

+ + +
+

+ + #char_at(x, y) ⇒ Object + + + + + +

+ + + + +
+
+
+
+74
+75
+76
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 74
+
+def char_at(x, y)
+  @grid[index_at(x, y)]
+end
+
+
+ +
+

+ + #color_at(x, y) ⇒ Object + + + + + +

+ + + + +
+
+
+
+78
+79
+80
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 78
+
+def color_at(x, y)
+  @colors[index_at(x, y)]
+end
+
+
+ +
+

+ + #index_at(x, y) ⇒ Object + + + + + +

+ + + + +
+
+
+
+82
+83
+84
+85
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 82
+
+def index_at(x, y)
+  return nil unless 0 <= x && x < width && 0 <= y && y < height
+  y * width + x
+end
+
+
+ +
+

+ + #line!(x1, y1, x2, y2, color) ⇒ Object + + + + + +

+
+

digital differential analyzer algorithm

+ + +
+
+
+ + +
+ + + + +
+
+
+
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 115
+
+def line!(x1, y1, x2, y2, color)
+  if (x1 < origin_x && x2 < origin_x) ||
+      (x1 > origin_x + plot_width && x2 > origin_x + plot_width)
+    return color
+  end
+  if (y1 < origin_y && y2 < origin_y) ||
+      (y1 > origin_y + plot_height && y2 > origin_y + plot_height)
+    return color
+  end
+
+  toff = x1 - origin_x
+  px1 = toff.fdiv(plot_width) * pixel_width
+  toff = x2 - origin_x
+  px2 = toff.fdiv(plot_width) * pixel_width
+
+  toff = y1 - origin_y
+  py1 = pixel_height - toff.fdiv(plot_height) * pixel_height
+  toff = y2 - origin_y
+  py2 = pixel_height - toff.fdiv(plot_height) * pixel_height
+
+  dx = px2 - px1
+  dy = py2 - py1
+  nsteps = dx.abs > dy.abs ? dx.abs : dy.abs
+  inc_x = dx.fdiv(nsteps)
+  inc_y = dy.fdiv(nsteps)
+
+  cur_x = px1
+  cur_y = py1
+  pixel!(cur_x.floor, cur_y.floor, color)
+  1.upto(nsteps) do |i|
+    cur_x += inc_x
+    cur_y += inc_y
+    pixel!(cur_x.floor, cur_y.floor, color)
+  end
+  color
+end
+
+
+ +
+

+ + #lines!(x, y, color = :normal) ⇒ Object + + + + + +

+ + + + +
+
+
+
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 152
+
+def lines!(x, y, color = :normal)
+  if x.length != y.length
+    raise ArgumentError, "x and y must be the same length"
+  end
+  unless x.length > 0
+    raise ArgumentError, "x and y must not be empty"
+  end
+  (0 ... (x.length - 1)).each do |i|
+    line!(x[i], y[i], x[i+1], y[i+1], color)
+  end
+end
+
+
+ +
+

+ + #point!(x, y, color) ⇒ Object + + + + + +

+ + + + +
+
+
+
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 87
+
+def point!(x, y, color)
+  unless origin_x <= x && x <= origin_x + plot_width &&
+         origin_y <= y && y <= origin_y + plot_height
+    return color
+  end
+
+  plot_offset_x = x - origin_x
+  pixel_x = plot_offset_x.fdiv(plot_width) * pixel_width
+
+  plot_offset_y = y - origin_y
+  pixel_y = pixel_height - plot_offset_y.fdiv(plot_height) * pixel_height
+
+  pixel!(pixel_x.floor, pixel_y.floor, color)
+end
+
+
+ +
+

+ + #points!(x, y, color = :normal) ⇒ Object + + + + + +

+ + + + +
+
+
+
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 102
+
+def points!(x, y, color = :normal)
+  if x.length != y.length
+    raise ArgumentError, "x and y must be the same length"
+  end
+  unless x.length > 0
+    raise ArgumentError, "x and y must not be empty"
+  end
+  (0 ... x.length).each do |i|
+    point!(x[i], y[i], color)
+  end
+end
+
+
+ +
+ + + + + +
+
+
+
+67
+68
+69
+70
+71
+72
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 67
+
+def print(out)
+  (0 ... height).each do |row_index|
+    print_row(out, row_index)
+    out.puts if row_index < height - 1
+  end
+end
+
+
+ +
+

+ + #show(out) ⇒ Object + + + + + +

+ + + + +
+
+
+
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 52
+
+def show(out)
+  b = BorderMaps::BORDER_SOLID
+  border_length = width
+
+  print_border_top(out, "", border_length, :solid, color: :light_black)
+  out.puts
+  (0 ... height).each do |row_index|
+    print_styled(out, b[:l], color: :light_black)
+    print_row(out, row_index)
+    print_styled(out, b[:r], color: :light_black)
+    out.puts
+  end
+  print_border_bottom(out, "", border_length, :solid, color: :light_black)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/DensityCanvas.html b/0.0.3/UnicodePlot/DensityCanvas.html new file mode 100644 index 0000000..fe0aae9 --- /dev/null +++ b/0.0.3/UnicodePlot/DensityCanvas.html @@ -0,0 +1,461 @@ + + + + + + + Class: UnicodePlot::DensityCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::DensityCanvas + + + +

+
+ +
+
Inherits:
+
+ Canvas + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/density_canvas.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
DENSITY_SIGNS = + +
+
[" ", "", "", "", ""].freeze
+ +
MIN_WIDTH = + +
+
5
+ +
MIN_HEIGHT = + +
+
5
+ +
X_PIXEL_PER_CHAR = + +
+
1
+ +
Y_PIXEL_PER_CHAR = + +
+
2
+ +
+ + + + + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Canvas

+

#height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from Canvas

+

#char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

+ + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(width, height, **kw) ⇒ DensityCanvas + + + + + +

+
+

Returns a new instance of DensityCanvas.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+
+
# File 'src/lib/unicode_plot/density_canvas.rb', line 11
+
+def initialize(width, height, **kw)
+  width = [width, MIN_WIDTH].max
+  height = [height, MIN_HEIGHT].max
+  @max_density = 1
+  super(width, height,
+        width * X_PIXEL_PER_CHAR,
+        height * Y_PIXEL_PER_CHAR,
+        0,
+        x_pixel_per_char: X_PIXEL_PER_CHAR,
+        y_pixel_per_char: Y_PIXEL_PER_CHAR,
+        **kw)
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #pixel!(pixel_x, pixel_y, color) ⇒ Object + + + + + +

+ + + + +
+
+
+
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+
+
# File 'src/lib/unicode_plot/density_canvas.rb', line 24
+
+def pixel!(pixel_x, pixel_y, color)
+  unless 0 <= pixel_x && pixel_x <= pixel_width &&
+         0 <= pixel_y && pixel_y <= pixel_height
+    return color
+  end
+
+  pixel_x -= 1 unless pixel_x < pixel_width
+  pixel_y -= 1 unless pixel_y < pixel_height
+
+  char_x = (pixel_x.fdiv(pixel_width) * width).floor
+  char_y = (pixel_y.fdiv(pixel_height) * height).floor
+
+  index = index_at(char_x, char_y)
+  @grid[index] += 1
+  @max_density = [@max_density, @grid[index]].max
+  @colors[index] |= COLOR_ENCODE[color]
+  color
+end
+
+
+ +
+ + + + + +
+
+
+
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+
+
# File 'src/lib/unicode_plot/density_canvas.rb', line 43
+
+def print_row(out, row_index)
+  unless 0 <= row_index && row_index < height
+    raise ArgumentError, "row_index out of bounds"
+  end
+  y = row_index
+  den_sign_count = DENSITY_SIGNS.length
+  val_scale = (den_sign_count - 1).fdiv(@max_density)
+  (0 ... width).each do |x|
+    den_index = (char_at(x, y) * val_scale).round
+    print_color(out, color_at(x, y), DENSITY_SIGNS[den_index])
+  end
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/DotCanvas.html b/0.0.3/UnicodePlot/DotCanvas.html new file mode 100644 index 0000000..d28171d --- /dev/null +++ b/0.0.3/UnicodePlot/DotCanvas.html @@ -0,0 +1,417 @@ + + + + + + + Class: UnicodePlot::DotCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::DotCanvas + + + +

+
+ +
+
Inherits:
+
+ LookupCanvas + + + show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/dot_canvas.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
DOT_SIGNS = + +
+
[
+  [
+    0b10,
+    0b01
+  ].freeze
+].freeze
+ +
DOT_DECODE = + +
+
[
+  -' ', # 0b00
+  -'.', # 0b01
+  -"'", # 0b10
+  -':', # 0b11
+].freeze
+ +
X_PIXEL_PER_CHAR = + +
+
1
+ +
Y_PIXEL_PER_CHAR = + +
+
2
+ +
+ + + + + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Canvas

+

#height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from LookupCanvas

+

#pixel!, #print_row

+ + + + + + + + + +

Methods inherited from Canvas

+

#char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

+ + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(width, height, **kw) ⇒ DotCanvas + + + + + +

+
+

Returns a new instance of DotCanvas.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+20
+21
+22
+23
+24
+
+
# File 'src/lib/unicode_plot/dot_canvas.rb', line 20
+
+def initialize(width, height, **kw)
+  super(width, height,
+        X_PIXEL_PER_CHAR, Y_PIXEL_PER_CHAR,
+        **kw)
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #lookup_decode(code) ⇒ Object + + + + + +

+ + + + +
+
+
+
+30
+31
+32
+
+
# File 'src/lib/unicode_plot/dot_canvas.rb', line 30
+
+def lookup_decode(code)
+  DOT_DECODE[code]
+end
+
+
+ +
+

+ + #lookup_encode(x, y) ⇒ Object + + + + + +

+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'src/lib/unicode_plot/dot_canvas.rb', line 26
+
+def lookup_encode(x, y)
+  DOT_SIGNS[x][y]
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/GridPlot.html b/0.0.3/UnicodePlot/GridPlot.html new file mode 100644 index 0000000..3af61b5 --- /dev/null +++ b/0.0.3/UnicodePlot/GridPlot.html @@ -0,0 +1,866 @@ + + + + + + + Class: UnicodePlot::GridPlot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::GridPlot + + + +

+
+ +
+
Inherits:
+
+ Plot + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/grid_plot.rb
+
+ +
+ +
+

Direct Known Subclasses

+

Lineplot, Scatterplot

+
+ + +

+ Constant Summary + collapse +

+ +
+ +
MIN_WIDTH = + +
+
5
+ +
DEFAULT_WIDTH = + +
+
40
+ +
MIN_HEIGHT = + +
+
2
+ +
DEFAULT_HEIGHT = + +
+
15
+ +
+ + + + + + +

Constants inherited + from Plot

+

Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING

+ + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Plot

+

#border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from Plot

+

#annotate!, #annotate_row!, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(x, y, canvas, width: DEFAULT_WIDTH, height: DEFAULT_HEIGHT, xlim: [0, 0], ylim: [0, 0], grid: true, **kw) ⇒ GridPlot + + + + + +

+
+

Returns a new instance of GridPlot.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 8
+
+def initialize(x, y, canvas,
+               width: DEFAULT_WIDTH,
+               height: DEFAULT_HEIGHT,
+               xlim: [0, 0], 
+               ylim: [0, 0],
+               grid: true,
+               **kw)
+  if x.length != y.length
+    raise ArgumentError, "x and y must be the same length"
+  end
+  unless x.length > 0
+    raise ArgumentError, "x and y must not be empty"
+  end
+  unless xlim.length == 2 && ylim.length == 2
+    raise ArgumentError, "xlim and ylim must be 2-length arrays"
+  end
+  width = [width, MIN_WIDTH].max
+  height = [height, MIN_HEIGHT].max
+  min_x, max_x = Utils.extend_limits(x, xlim)
+  min_y, max_y = Utils.extend_limits(y, ylim)
+  origin_x = min_x
+  origin_y = min_y
+  plot_width = max_x - origin_x
+  plot_height = max_y - origin_y
+  @canvas = Canvas.create(canvas, width, height,
+                          origin_x: origin_x,
+                          origin_y: origin_y,
+                          plot_width: plot_width,
+                          plot_height: plot_height)
+  super(**kw)
+
+  min_x_str = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s
+  max_x_str = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s
+  min_y_str = (Utils.roundable?(min_y) ? min_y.round : min_y).to_s
+  max_y_str = (Utils.roundable?(max_y) ? max_y.round : max_y).to_s
+
+  annotate_row!(:l, 0, max_y_str, color: :light_black)
+  annotate_row!(:l, height-1, min_y_str, color: :light_black)
+  annotate!(:bl, min_x_str, color: :light_black)
+  annotate!(:br, max_x_str, color: :light_black)
+
+  if grid
+    if min_y < 0 && 0 < max_y
+      step = plot_width.fdiv(width * @canvas.x_pixel_per_char - 1)
+      min_x.step(max_x, by: step) do |i|
+        @canvas.point!(i, 0, :normal)
+      end
+    end
+    if min_x < 0 && 0 < max_x
+      step = plot_height.fdiv(height * @canvas.y_pixel_per_char - 1)
+      min_y.step(max_y, by: step) do |i|
+        @canvas.point!(0, i, :normal)
+      end
+    end
+  end
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #lines!(x, y, color) ⇒ Object + + + + + +

+ + + + +
+
+
+
+93
+94
+95
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 93
+
+def lines!(x, y, color)
+  @canvas.lines!(x, y, color)
+end
+
+
+ +
+

+ + #n_columnsObject + + + + + +

+ + + + +
+
+
+
+85
+86
+87
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 85
+
+def n_columns
+  @canvas.width
+end
+
+
+ +
+

+ + #n_rowsObject + + + + + +

+ + + + +
+
+
+
+81
+82
+83
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 81
+
+def n_rows
+  @canvas.height
+end
+
+
+ +
+

+ + #origin_xObject + + + + + +

+ + + + +
+
+
+
+65
+66
+67
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 65
+
+def origin_x
+  @canvas.origin_x
+end
+
+
+ +
+

+ + #origin_yObject + + + + + +

+ + + + +
+
+
+
+69
+70
+71
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 69
+
+def origin_y
+  @canvas.origin_y
+end
+
+
+ +
+

+ + #plot_heightObject + + + + + +

+ + + + +
+
+
+
+77
+78
+79
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 77
+
+def plot_height
+  @canvas.plot_height
+end
+
+
+ +
+

+ + #plot_widthObject + + + + + +

+ + + + +
+
+
+
+73
+74
+75
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 73
+
+def plot_width
+  @canvas.plot_width
+end
+
+
+ +
+

+ + #points!(x, y, color) ⇒ Object + + + + + +

+ + + + +
+
+
+
+89
+90
+91
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 89
+
+def points!(x, y, color)
+  @canvas.points!(x, y, color)
+end
+
+
+ +
+ + + + + +
+
+
+
+97
+98
+99
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 97
+
+def print_row(out, row_index)
+  @canvas.print_row(out, row_index)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/Lineplot.html b/0.0.3/UnicodePlot/Lineplot.html new file mode 100644 index 0000000..d8c82a7 --- /dev/null +++ b/0.0.3/UnicodePlot/Lineplot.html @@ -0,0 +1,187 @@ + + + + + + + Class: UnicodePlot::Lineplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Lineplot + + + +

+
+ +
+
Inherits:
+
+ GridPlot + +
    +
  • Object
  • + + + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/lineplot.rb
+
+ +
+ + + + +

Constant Summary

+ +

Constants inherited + from GridPlot

+

GridPlot::DEFAULT_HEIGHT, GridPlot::DEFAULT_WIDTH, GridPlot::MIN_HEIGHT, GridPlot::MIN_WIDTH

+ + + +

Constants inherited + from Plot

+

Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING

+ + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Plot

+

#border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

+ + + + + + + + + +

Method Summary

+ +

Methods inherited from GridPlot

+

#initialize, #lines!, #n_columns, #n_rows, #origin_x, #origin_y, #plot_height, #plot_width, #points!, #print_row

+ + + + + + + + + +

Methods inherited from Plot

+

#annotate!, #annotate_row!, #initialize, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +

This class inherits a constructor from UnicodePlot::GridPlot

+ +
+ + +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/LookupCanvas.html b/0.0.3/UnicodePlot/LookupCanvas.html new file mode 100644 index 0000000..0a1bc56 --- /dev/null +++ b/0.0.3/UnicodePlot/LookupCanvas.html @@ -0,0 +1,425 @@ + + + + + + + Class: UnicodePlot::LookupCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::LookupCanvas + + + +

+
+ +
+
Inherits:
+
+ Canvas + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/lookup_canvas.rb
+
+ +
+ +
+

Direct Known Subclasses

+

AsciiCanvas, DotCanvas

+
+ + + +

Constant Summary

+ +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Canvas

+

#height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from Canvas

+

#char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

+ + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(width, height, x_pixel_per_char, y_pixel_per_char, fill_char = 0, **kw) ⇒ LookupCanvas + + + + + +

+
+

Returns a new instance of LookupCanvas.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+3
+4
+5
+6
+7
+8
+9
+10
+11
+
+
# File 'src/lib/unicode_plot/lookup_canvas.rb', line 3
+
+def initialize(width, height, x_pixel_per_char, y_pixel_per_char, fill_char=0, **kw)
+  super(width, height,
+        width * x_pixel_per_char,
+        height * y_pixel_per_char,
+        fill_char,
+        x_pixel_per_char: x_pixel_per_char,
+        y_pixel_per_char: y_pixel_per_char,
+        **kw)
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #pixel!(pixel_x, pixel_y, color) ⇒ Object + + + + + +

+ + + + +
+
+
+
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/lookup_canvas.rb', line 13
+
+def pixel!(pixel_x, pixel_y, color)
+  unless 0 <= pixel_x && pixel_x <= pixel_width &&
+         0 <= pixel_y && pixel_y <= pixel_height
+    return color
+  end
+  pixel_x -= 1 unless pixel_x < pixel_width
+  pixel_y -= 1 unless pixel_y < pixel_height
+
+  tx = pixel_x.fdiv(pixel_width) * width
+  char_x = tx.floor + 1
+  char_x_off = pixel_x % x_pixel_per_char + 1
+  char_x += 1 if char_x < tx.round + 1 && char_x_off == 1
+
+  char_y = (pixel_y.fdiv(pixel_height) * height).floor + 1
+  char_y_off = pixel_y % y_pixel_per_char + 1
+
+  index = index_at(char_x - 1, char_y - 1)
+  if index
+    @grid[index] |= lookup_encode(char_x_off - 1, char_y_off - 1)
+    @colors[index] |= COLOR_ENCODE[color]
+  end
+end
+
+
+ +
+ + + + + +
+
+
+
+36
+37
+38
+39
+40
+41
+42
+43
+44
+
+
# File 'src/lib/unicode_plot/lookup_canvas.rb', line 36
+
+def print_row(out, row_index)
+  unless 0 <= row_index && row_index < height
+    raise ArgumentError, "row_index out of bounds"
+  end
+  y = row_index
+  (0 ... width).each do |x|
+    print_color(out, color_at(x, y), lookup_decode(char_at(x, y)))
+  end
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/Plot.html b/0.0.3/UnicodePlot/Plot.html new file mode 100644 index 0000000..52276cd --- /dev/null +++ b/0.0.3/UnicodePlot/Plot.html @@ -0,0 +1,1857 @@ + + + + + + + Class: UnicodePlot::Plot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Plot + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + +
+
Includes:
+
StyledPrinter
+
+ + + + + + +
+
Defined in:
+
src/lib/unicode_plot/plot.rb
+
+ +
+ +
+

Direct Known Subclasses

+

Barplot, Boxplot, GridPlot

+
+ + +

+ Constant Summary + collapse +

+ +
+ +
DEFAULT_BORDER = + +
+
:solid
+ +
DEFAULT_MARGIN = + +
+
3
+ +
DEFAULT_PADDING = + +
+
1
+ +
COLOR_CYCLE = + +
+
[
+  :green,
+  :blue,
+  :red,
+  :magenta,
+  :yellow,
+  :cyan
+].freeze
+ +
+ + + + + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + +

Instance Attribute Summary collapse

+ + + + + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(title: nil, xlabel: nil, ylabel: nil, border: DEFAULT_BORDER, margin: DEFAULT_MARGIN, padding: DEFAULT_PADDING, labels: true) ⇒ Plot + + + + + +

+
+

Returns a new instance of Plot.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+
+
# File 'src/lib/unicode_plot/plot.rb', line 9
+
+def initialize(title: nil,
+               xlabel: nil,
+               ylabel: nil,
+               border: DEFAULT_BORDER,
+               margin: DEFAULT_MARGIN,
+               padding: DEFAULT_PADDING,
+               labels: true)
+  @title = title
+  @xlabel = xlabel
+  @ylabel = ylabel
+  @border = border
+  @margin = check_margin(margin)
+  @padding = padding
+  @labels_left = {}
+  @colors_left = {}
+  @labels_right = {}
+  @colors_right = {}
+  @decorations = {}
+  @colors_deco = {}
+  @show_labels = labels
+  @auto_color = 0
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #borderObject (readonly) + + + + + +

+
+

Returns the value of attribute border.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/plot.rb', line 32
+
+def border
+  @border
+end
+
+
+ + + +
+

+ + #colors_decoObject (readonly) + + + + + +

+
+

Returns the value of attribute colors_deco.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/plot.rb', line 32
+
+def colors_deco
+  @colors_deco
+end
+
+
+ + + +
+

+ + #colors_leftObject (readonly) + + + + + +

+
+

Returns the value of attribute colors_left.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/plot.rb', line 32
+
+def colors_left
+  @colors_left
+end
+
+
+ + + +
+

+ + #colors_rightObject (readonly) + + + + + +

+
+

Returns the value of attribute colors_right.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/plot.rb', line 32
+
+def colors_right
+  @colors_right
+end
+
+
+ + + +
+

+ + #decorationsObject (readonly) + + + + + +

+
+

Returns the value of attribute decorations.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/plot.rb', line 32
+
+def decorations
+  @decorations
+end
+
+
+ + + +
+

+ + #labels_leftObject (readonly) + + + + + +

+
+

Returns the value of attribute labels_left.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/plot.rb', line 32
+
+def labels_left
+  @labels_left
+end
+
+
+ + + +
+

+ + #labels_rightObject (readonly) + + + + + +

+
+

Returns the value of attribute labels_right.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/plot.rb', line 32
+
+def labels_right
+  @labels_right
+end
+
+
+ + + +
+

+ + #marginObject (readonly) + + + + + +

+
+

Returns the value of attribute margin.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/plot.rb', line 32
+
+def margin
+  @margin
+end
+
+
+ + + +
+

+ + #paddingObject (readonly) + + + + + +

+
+

Returns the value of attribute padding.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/plot.rb', line 32
+
+def padding
+  @padding
+end
+
+
+ + + +
+

+ + #titleObject (readonly) + + + + + +

+
+

Returns the value of attribute title.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/plot.rb', line 32
+
+def title
+  @title
+end
+
+
+ + + +
+

+ + #xlabelObject (readonly) + + + + + +

+
+

Returns the value of attribute xlabel.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/plot.rb', line 32
+
+def xlabel
+  @xlabel
+end
+
+
+ + + +
+

+ + #ylabelObject (readonly) + + + + + +

+
+

Returns the value of attribute ylabel.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/plot.rb', line 32
+
+def ylabel
+  @ylabel
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #annotate!(loc, value, color: :normal) ⇒ Object + + + + + +

+ + + + +
+
+
+
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+
+
# File 'src/lib/unicode_plot/plot.rb', line 65
+
+def annotate!(loc, value, color: :normal)
+  case loc
+  when :l
+    (0 ... n_rows).each do |row|
+      if @labels_left.fetch(row, "") == ""
+        @labels_left[row] = value
+        @colors_left[row] = color
+        break
+      end
+    end
+  when :r
+    (0 ... n_rows).each do |row|
+      if @labels_right.fetch(row, "") == ""
+        @labels_right[row] = value
+        @colors_right[row] = color
+        break
+      end
+    end
+  when :t, :b, :tl, :tr, :bl, :br
+    @decorations[loc] = value
+    @colors_deco[loc] = color
+  else
+    raise ArgumentError,
+      "unknown location to annotate (#{loc.inspect} for :t, :b, :l, :r, :tl, :tr, :bl, or :br)"
+  end
+end
+
+
+ +
+

+ + #annotate_row!(loc, row_index, value, color: :normal) ⇒ Object + + + + + +

+ + + + +
+
+
+
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+
+
# File 'src/lib/unicode_plot/plot.rb', line 92
+
+def annotate_row!(loc, row_index, value, color: :normal)
+  case loc
+  when :l
+    @labels_left[row_index] = value
+    @colors_left[row_index] = color
+  when :r
+    @labels_right[row_index] = value
+    @colors_right[row_index] = color
+  else
+    raise ArgumentError, "unknown location `#{loc}`, try :l or :r instead"
+  end
+end
+
+
+ +
+

+ + #next_colorObject + + + + + +

+ + + + +
+
+
+
+118
+119
+120
+121
+122
+
+
# File 'src/lib/unicode_plot/plot.rb', line 118
+
+def next_color
+  COLOR_CYCLE[@auto_color]
+ensure
+  @auto_color = (@auto_color + 1) % COLOR_CYCLE.length
+end
+
+
+ +
+

+ + #render(out) ⇒ Object + + + + + +

+ + + + +
+
+
+
+105
+106
+107
+
+
# File 'src/lib/unicode_plot/plot.rb', line 105
+
+def render(out)
+  Renderer.render(out, self)
+end
+
+
+ +
+

+ + #show_labels?Boolean + + + + + +

+
+ + + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+61
+62
+63
+
+
# File 'src/lib/unicode_plot/plot.rb', line 61
+
+def show_labels?
+  @show_labels
+end
+
+
+ +
+

+ + #title_given?Boolean + + + + + +

+
+ + + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+45
+46
+47
+
+
# File 'src/lib/unicode_plot/plot.rb', line 45
+
+def title_given?
+  title && title != ""
+end
+
+
+ +
+

+ + #to_sObject + + + + + +

+ + + + +
+
+
+
+124
+125
+126
+127
+128
+129
+130
+
+
# File 'src/lib/unicode_plot/plot.rb', line 124
+
+def to_s
+  StringIO.open do |sio|
+    render(sio)
+    sio.close
+    sio.string
+  end
+end
+
+
+ +
+

+ + #xlabel_given?Boolean + + + + + +

+
+ + + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+49
+50
+51
+
+
# File 'src/lib/unicode_plot/plot.rb', line 49
+
+def xlabel_given?
+  xlabel && xlabel != ""
+end
+
+
+ +
+

+ + #ylabel_given?Boolean + + + + + +

+
+ + + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+53
+54
+55
+
+
# File 'src/lib/unicode_plot/plot.rb', line 53
+
+def ylabel_given?
+  ylabel && ylabel != ""
+end
+
+
+ +
+

+ + #ylabel_lengthObject + + + + + +

+ + + + +
+
+
+
+57
+58
+59
+
+
# File 'src/lib/unicode_plot/plot.rb', line 57
+
+def ylabel_length
+  ylabel&.length || 0
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/Renderer.html b/0.0.3/UnicodePlot/Renderer.html new file mode 100644 index 0000000..a30be23 --- /dev/null +++ b/0.0.3/UnicodePlot/Renderer.html @@ -0,0 +1,523 @@ + + + + + + + Class: UnicodePlot::Renderer + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Renderer + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + +
+
Includes:
+
BorderPrinter
+
+ + + + + + +
+
Defined in:
+
src/lib/unicode_plot/renderer.rb
+
+ +
+ + + + +

Constant Summary

+ +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + +

Instance Attribute Summary collapse

+ + + + + + +

+ Class Method Summary + collapse +

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(plot) ⇒ Renderer + + + + + +

+
+

Returns a new instance of Renderer.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+66
+67
+68
+69
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 66
+
+def initialize(plot)
+  @plot = plot
+  @out = nil
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #outObject (readonly) + + + + + +

+
+

Returns the value of attribute out.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+72
+73
+74
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 72
+
+def out
+  @out
+end
+
+
+ + + +
+

+ + #plotObject (readonly) + + + + + +

+
+

Returns the value of attribute plot.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+71
+72
+73
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 71
+
+def plot
+  @plot
+end
+
+
+ +
+ + +
+

Class Method Details

+ + +
+

+ + .render(out, plot) ⇒ Object + + + + + +

+ + + + +
+
+
+
+62
+63
+64
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 62
+
+def self.render(out, plot)
+  new(plot).render(out)
+end
+
+
+ +
+ +
+

Instance Method Details

+ + +
+

+ + #render(out) ⇒ Object + + + + + +

+ + + + +
+
+
+
+74
+75
+76
+77
+78
+79
+80
+81
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 74
+
+def render(out)
+  @out = out
+  init_render
+
+  render_top
+  render_rows
+  render_bottom
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/Scatterplot.html b/0.0.3/UnicodePlot/Scatterplot.html new file mode 100644 index 0000000..b06fdba --- /dev/null +++ b/0.0.3/UnicodePlot/Scatterplot.html @@ -0,0 +1,187 @@ + + + + + + + Class: UnicodePlot::Scatterplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Scatterplot + + + +

+
+ +
+
Inherits:
+
+ GridPlot + +
    +
  • Object
  • + + + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/scatterplot.rb
+
+ +
+ + + + +

Constant Summary

+ +

Constants inherited + from GridPlot

+

GridPlot::DEFAULT_HEIGHT, GridPlot::DEFAULT_WIDTH, GridPlot::MIN_HEIGHT, GridPlot::MIN_WIDTH

+ + + +

Constants inherited + from Plot

+

Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING

+ + + +

Constants included + from StyledPrinter

+

UnicodePlot::StyledPrinter::COLOR_DECODE, UnicodePlot::StyledPrinter::COLOR_ENCODE, UnicodePlot::StyledPrinter::DISABLE_TEXT_STYLE, UnicodePlot::StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Plot

+

#border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

+ + + + + + + + + +

Method Summary

+ +

Methods inherited from GridPlot

+

#initialize, #lines!, #n_columns, #n_rows, #origin_x, #origin_y, #plot_height, #plot_width, #points!, #print_row

+ + + + + + + + + +

Methods inherited from Plot

+

#annotate!, #annotate_row!, #initialize, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +

This class inherits a constructor from UnicodePlot::GridPlot

+ +
+ + +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/StyledPrinter.html b/0.0.3/UnicodePlot/StyledPrinter.html new file mode 100644 index 0000000..babff1e --- /dev/null +++ b/0.0.3/UnicodePlot/StyledPrinter.html @@ -0,0 +1,421 @@ + + + + + + + Module: UnicodePlot::StyledPrinter + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot::StyledPrinter + + + +

+
+ + + + + + + + + +
+
Included in:
+
BorderPrinter, Plot
+
+ + + +
+
Defined in:
+
src/lib/unicode_plot/styled_printer.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
TEXT_COLORS = + +
+
{
+  black:         "\033[30m",
+  red:           "\033[31m",
+  green:         "\033[32m",
+  yellow:        "\033[33m",
+  blue:          "\033[34m",
+  magenta:       "\033[35m",
+  cyan:          "\033[36m",
+  white:         "\033[37m",
+  gray:          "\033[90m",
+  light_black:   "\033[90m",
+  light_red:     "\033[91m",
+  light_green:   "\033[92m",
+  light_yellow:  "\033[93m",
+  light_blue:    "\033[94m",
+  light_magenta: "\033[95m",
+  light_cyan:    "\033[96m",
+  normal:        "\033[0m",
+  default:       "\033[39m",
+  bold:          "\033[1m",
+  underline:     "\033[4m",
+  blink:         "\033[5m",
+  reverse:       "\033[7m",
+  hidden:        "\033[8m",
+  nothing:       "",
+}
+ +
DISABLE_TEXT_STYLE = + +
+
{
+  bold:      "\033[22m",
+  underline: "\033[24m",
+  blink:     "\033[25m",
+  reverse:   "\033[27m",
+  hidden:    "\033[28m",
+  normal:    "",
+  default:   "",
+  nothing:   "",
+}.freeze
+ +
COLOR_ENCODE = + +
+
{
+  normal:  0b000,
+  blue:    0b001,
+  red:     0b010,
+  magenta: 0b011,
+  green:   0b100,
+  cyan:    0b101,
+  yellow:  0b110,
+  white:   0b111
+}.freeze
+ +
COLOR_DECODE = + +
+
COLOR_ENCODE.map {|k, v| [v, k] }.to_h.freeze
+ +
+ + + + + + + + + +

+ Instance Method Summary + collapse +

+ + + + + + +
+

Instance Method Details

+ + +
+

+ + #color?(out) ⇒ Boolean + + + + + +

+
+ + + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+87
+88
+89
+
+
# File 'src/lib/unicode_plot/styled_printer.rb', line 87
+
+def color?(out)
+  out&.tty? || false
+end
+
+
+ +
+ + + + + +
+
+
+
+82
+83
+84
+85
+
+
# File 'src/lib/unicode_plot/styled_printer.rb', line 82
+
+def print_color(out, color, *args)
+  color = COLOR_DECODE[color]
+  print_styled(out, *args, color: color)
+end
+
+
+ +
+ + + + + +
+
+
+
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+
+
# File 'src/lib/unicode_plot/styled_printer.rb', line 60
+
+def print_styled(out, *args, bold: false, color: :normal)
+  return out.print(*args) unless color?(out)
+
+  str = StringIO.open {|sio| sio.print(*args); sio.close; sio.string }
+  color = :nothing if bold && color == :bold
+  enable_ansi = TEXT_COLORS.fetch(color, TEXT_COLORS[:default]) +
+                (bold ? TEXT_COLORS[:bold] : "")
+  disable_ansi = (bold ? DISABLE_TEXT_STYLE[:bold] : "") +
+                 DISABLE_TEXT_STYLE.fetch(color, TEXT_COLORS[:default])
+  first = true
+  StringIO.open do |sio|
+    str.each_line do |line|
+      sio.puts unless first
+      first = false
+      continue if line.empty?
+      sio.print(enable_ansi, line, disable_ansi)
+    end
+    sio.close
+    out.print(sio.string)
+  end
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/Utils.html b/0.0.3/UnicodePlot/Utils.html new file mode 100644 index 0000000..cae2eee --- /dev/null +++ b/0.0.3/UnicodePlot/Utils.html @@ -0,0 +1,613 @@ + + + + + + + Module: UnicodePlot::Utils + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot::Utils + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/utils.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
INT64_MIN = + +
+
-9223372036854775808
+ +
INT64_MAX = + +
+
9223372036854775807
+ +
+ + + + + + + + + +

+ Class Method Summary + collapse +

+ + + + + + +
+

Class Method Details

+ + +
+

+ + .ceil_neg_log10(x) ⇒ Object + + + + + +

+ + + + +
+
+
+
+59
+60
+61
+62
+63
+64
+65
+
+
# File 'src/lib/unicode_plot/utils.rb', line 59
+
+def ceil_neg_log10(x)
+  if roundable?(-Math.log10(x))
+    (-Math.log10(x)).ceil
+  else
+    (-Math.log10(x)).floor
+  end
+end
+
+
+ +
+

+ + .extend_limits(values, limits) ⇒ Object + + + + + +

+ + + + +
+
+
+
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+
+
# File 'src/lib/unicode_plot/utils.rb', line 5
+
+def extend_limits(values, limits)
+  mi, ma = limits.minmax.map(&:to_f)
+  if mi == 0 && ma == 0
+    mi, ma = values.minmax.map(&:to_f)
+  end
+  diff = ma - mi
+  if diff == 0
+    ma = mi + 1
+    mi = mi - 1
+  end
+  if limits == [0, 0]
+    plotting_range_narrow(mi, ma)
+  else
+    [mi, ma]
+  end
+end
+
+
+ +
+

+ + .float_round_log10(x, m) ⇒ Object + + + + + +

+ + + + +
+
+
+
+29
+30
+31
+32
+33
+34
+35
+36
+37
+
+
# File 'src/lib/unicode_plot/utils.rb', line 29
+
+def float_round_log10(x, m)
+  if x == 0
+    0.0
+  elsif x > 0
+    x.round(ceil_neg_log10(m) + 1).to_f
+  else
+    -(-x).round(ceil_neg_log10(m) + 1).to_f
+  end
+end
+
+
+ +
+

+ + .plotting_range_narrow(xmin, xmax) ⇒ Object + + + + + +

+ + + + +
+
+
+
+22
+23
+24
+25
+26
+27
+
+
# File 'src/lib/unicode_plot/utils.rb', line 22
+
+def plotting_range_narrow(xmin, xmax)
+  diff = xmax - xmin
+  xmax = round_up_subtick(xmax, diff)
+  xmin = round_down_subtick(xmin, diff)
+  [xmin.to_f, xmax.to_f]
+end
+
+
+ +
+

+ + .round_down_subtick(x, m) ⇒ Object + + + + + +

+ + + + +
+
+
+
+49
+50
+51
+52
+53
+54
+55
+56
+57
+
+
# File 'src/lib/unicode_plot/utils.rb', line 49
+
+def round_down_subtick(x, m)
+  if x == 0
+    0.0
+  elsif x > 0
+    x.floor(ceil_neg_log10(m) + 1)
+  else
+    -(-x).ceil(ceil_neg_log10(m) + 1)
+  end
+end
+
+
+ +
+

+ + .round_up_subtick(x, m) ⇒ Object + + + + + +

+ + + + +
+
+
+
+39
+40
+41
+42
+43
+44
+45
+46
+47
+
+
# File 'src/lib/unicode_plot/utils.rb', line 39
+
+def round_up_subtick(x, m)
+  if x == 0
+    0.0
+  elsif x > 0
+    x.ceil(ceil_neg_log10(m) + 1)
+  else
+    -(-x).floor(ceil_neg_log10(m) + 1)
+  end
+end
+
+
+ +
+

+ + .roundable?(x) ⇒ Boolean + + + + + +

+
+ + + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+70
+71
+72
+
+
# File 'src/lib/unicode_plot/utils.rb', line 70
+
+def roundable?(x)
+  x.to_i == x && INT64_MIN <= x && x < INT64_MAX
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/ValueTransformer.html b/0.0.3/UnicodePlot/ValueTransformer.html new file mode 100644 index 0000000..797bcd2 --- /dev/null +++ b/0.0.3/UnicodePlot/ValueTransformer.html @@ -0,0 +1,317 @@ + + + + + + + Module: UnicodePlot::ValueTransformer + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot::ValueTransformer + + + +

+
+ + + + + + + + + +
+
Included in:
+
Barplot
+
+ + + +
+
Defined in:
+
src/lib/unicode_plot/value_transformer.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
PREDEFINED_TRANSFORM_FUNCTIONS = + +
+
{
+  log: Math.method(:log),
+  ln: Math.method(:log),
+  log10: Math.method(:log10),
+  lg: Math.method(:log10),
+  log2: Math.method(:log2),
+  lb: Math.method(:log2),
+}.freeze
+ +
+ + + + + + + + + +

+ Class Method Summary + collapse +

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + +
+

Class Method Details

+ + +
+

+ + .transform_name(func, basename = "") ⇒ Object + + + + + +

+ + + + +
+
+
+
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+
+
# File 'src/lib/unicode_plot/value_transformer.rb', line 30
+
+module_function def transform_name(func, basename="")
+  return basename unless func
+  case func
+  when String, Symbol
+    name = func
+  when ->(f) { f.respond_to?(:name) }
+    name = func.name
+  else
+    name = "custom"
+  end
+  "#{basename} [#{name}]"
+end
+
+
+ +
+ +
+

Instance Method Details

+ + +
+

+ + #transform_values(func, values) ⇒ Object + + + + + +

+ + + + +
+
+
+
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+
+
# File 'src/lib/unicode_plot/value_transformer.rb', line 12
+
+def transform_values(func, values)
+  return values unless func
+
+  unless func.respond_to?(:call)
+    func = PREDEFINED_TRANSFORM_FUNCTIONS[func]
+    unless func.respond_to?(:call)
+      raise ArgumentError, "func must be callable"
+    end
+  end
+
+  case values
+  when Numeric
+    func.(values)
+  else
+    values.map(&func)
+  end
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/UnicodePlot/Version.html b/0.0.3/UnicodePlot/Version.html new file mode 100644 index 0000000..63f2738 --- /dev/null +++ b/0.0.3/UnicodePlot/Version.html @@ -0,0 +1,121 @@ + + + + + + + Module: UnicodePlot::Version + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot::Version + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/version.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
STRING = + +
+
VERSION
+ +
+ + + + + + + + + + +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/_index.html b/0.0.3/_index.html new file mode 100644 index 0000000..d321aec --- /dev/null +++ b/0.0.3/_index.html @@ -0,0 +1,329 @@ + + + + + + + Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Documentation by YARD 0.9.26

+
+

Alphabetic Index

+ +

File Listing

+ + +
+

Namespace Listing A-Z

+ + + + + + + + +
+ + + + + + + + +
    +
  • C
  • +
      + +
    • + Canvas + + (UnicodePlot) + +
    • + +
    +
+ + + + + +
    +
  • G
  • +
      + +
    • + GridPlot + + (UnicodePlot) + +
    • + +
    +
+ + + + + +
    +
  • P
  • +
      + +
    • + Plot + + (UnicodePlot) + +
    • + +
    +
+ + +
+ + +
    +
  • R
  • +
      + +
    • + Renderer + + (UnicodePlot) + +
    • + +
    +
+ + + + + + + + + + +
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.3/class_list.html b/0.0.3/class_list.html new file mode 100644 index 0000000..24da60d --- /dev/null +++ b/0.0.3/class_list.html @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + Class List + + + +
+
+

Class List

+ + + +
+ + +
+ + diff --git a/0.0.3/css/common.css b/0.0.3/css/common.css new file mode 100644 index 0000000..cf25c45 --- /dev/null +++ b/0.0.3/css/common.css @@ -0,0 +1 @@ +/* Override this file with custom rules */ \ No newline at end of file diff --git a/0.0.3/css/full_list.css b/0.0.3/css/full_list.css new file mode 100644 index 0000000..fa35982 --- /dev/null +++ b/0.0.3/css/full_list.css @@ -0,0 +1,58 @@ +body { + margin: 0; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + height: 101%; + overflow-x: hidden; + background: #fafafa; +} + +h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; } +.clear { clear: both; } +.fixed_header { position: fixed; background: #fff; width: 100%; padding-bottom: 10px; margin-top: 0; top: 0; z-index: 9999; height: 70px; } +#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; } +#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; } +#full_list { padding: 0; list-style: none; margin-left: 0; margin-top: 80px; font-size: 1.1em; } +#full_list ul { padding: 0; } +#full_list li { padding: 0; margin: 0; list-style: none; } +#full_list li .item { padding: 5px 5px 5px 12px; } +#noresults { padding: 7px 12px; background: #fff; } +#content.insearch #noresults { margin-left: 7px; } +li.collapsed ul { display: none; } +li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; } +li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; } +li { color: #888; cursor: pointer; } +li.deprecated { text-decoration: line-through; font-style: italic; } +li.odd { background: #f0f0f0; } +li.even { background: #fafafa; } +.item:hover { background: #ddd; } +li small:before { content: "("; } +li small:after { content: ")"; } +li small.search_info { display: none; } +a, a:visited { text-decoration: none; color: #05a; } +li.clicked > .item { background: #05a; color: #ccc; } +li.clicked > .item a, li.clicked > .item a:visited { color: #eee; } +li.clicked > .item a.toggle { opacity: 0.5; background-position: bottom right; } +li.collapsed.clicked a.toggle { background-position: top right; } +#search input { border: 1px solid #bbb; border-radius: 3px; } +#full_list_nav { margin-left: 10px; font-size: 0.9em; display: block; color: #aaa; } +#full_list_nav a, #nav a:visited { color: #358; } +#full_list_nav a:hover { background: transparent; color: #5af; } +#full_list_nav span:after { content: ' | '; } +#full_list_nav span:last-child:after { content: ''; } + +#content h1 { margin-top: 0; } +li { white-space: nowrap; cursor: normal; } +li small { display: block; font-size: 0.8em; } +li small:before { content: ""; } +li small:after { content: ""; } +li small.search_info { display: none; } +#search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; } +#content.insearch #search { background-position: center right; } +#search input { width: 110px; } + +#full_list.insearch ul { display: block; } +#full_list.insearch .item { display: none; } +#full_list.insearch .found { display: block; padding-left: 11px !important; } +#full_list.insearch li a.toggle { display: none; } +#full_list.insearch li small.search_info { display: block; } diff --git a/0.0.3/css/style.css b/0.0.3/css/style.css new file mode 100644 index 0000000..eb0dbc8 --- /dev/null +++ b/0.0.3/css/style.css @@ -0,0 +1,497 @@ +html { + width: 100%; + height: 100%; +} +body { + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + width: 100%; + margin: 0; + padding: 0; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; +} + +#nav { + position: relative; + width: 100%; + height: 100%; + border: 0; + border-right: 1px dotted #eee; + overflow: auto; +} +.nav_wrap { + margin: 0; + padding: 0; + width: 20%; + height: 100%; + position: relative; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; + flex-shrink: 0; + -webkit-flex-shrink: 0; + -ms-flex: 1 0; +} +#resizer { + position: absolute; + right: -5px; + top: 0; + width: 10px; + height: 100%; + cursor: col-resize; + z-index: 9999; +} +#main { + flex: 5 1; + -webkit-flex: 5 1; + -ms-flex: 5 1; + outline: none; + position: relative; + background: #fff; + padding: 1.2em; + padding-top: 0.2em; + box-sizing: border-box; +} + +@media (max-width: 920px) { + .nav_wrap { width: 100%; top: 0; right: 0; overflow: visible; position: absolute; } + #resizer { display: none; } + #nav { + z-index: 9999; + background: #fff; + display: none; + position: absolute; + top: 40px; + right: 12px; + width: 500px; + max-width: 80%; + height: 80%; + overflow-y: scroll; + border: 1px solid #999; + border-collapse: collapse; + box-shadow: -7px 5px 25px #aaa; + border-radius: 2px; + } +} + +@media (min-width: 920px) { + body { height: 100%; overflow: hidden; } + #main { height: 100%; overflow: auto; } + #search { display: none; } +} + +#main img { max-width: 100%; } +h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; } +h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; } +h1.title { margin-bottom: 10px; } +h1.alphaindex { margin-top: 0; font-size: 22px; } +h2 { + padding: 0; + padding-bottom: 3px; + border-bottom: 1px #aaa solid; + font-size: 1.4em; + margin: 1.8em 0 0.5em; + position: relative; +} +h2 small { font-weight: normal; font-size: 0.7em; display: inline; position: absolute; right: 0; } +h2 small a { + display: block; + height: 20px; + border: 1px solid #aaa; + border-bottom: 0; + border-top-left-radius: 5px; + background: #f8f8f8; + position: relative; + padding: 2px 7px; +} +.clear { clear: both; } +.inline { display: inline; } +.inline p:first-child { display: inline; } +.docstring, .tags, #filecontents { font-size: 15px; line-height: 1.5145em; } +.docstring p > code, .docstring p > tt, .tags p > code, .tags p > tt { + color: #c7254e; background: #f9f2f4; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; } +.docstring h1 { font-size: 1.2em; } +.docstring h2 { font-size: 1.1em; } +.docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; } +.summary_desc .object_link a, .docstring .object_link a { + font-family: monospace; font-size: 1.05em; + color: #05a; background: #EDF4FA; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.rdoc-term { padding-right: 25px; font-weight: bold; } +.rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; } +.summary_desc pre.code .object_link a, .docstring pre.code .object_link a { + padding: 0px; background: inherit; color: inherit; border-radius: inherit; +} + +/* style for */ +#filecontents table, .docstring table { border-collapse: collapse; } +#filecontents table th, #filecontents table td, +.docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; } +#filecontents table tr:nth-child(odd), +.docstring table tr:nth-child(odd) { background: #eee; } +#filecontents table tr:nth-child(even), +.docstring table tr:nth-child(even) { background: #fff; } +#filecontents table th, .docstring table th { background: #fff; } + +/* style for
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/0.0.3/method_list.html b/0.0.3/method_list.html new file mode 100644 index 0000000..12d4c8c --- /dev/null +++ b/0.0.3/method_list.html @@ -0,0 +1,971 @@ + + + + + + + + + + + + + + + + + + Method List + + + +
+
+

Method List

+ + + +
+ + +
+ + diff --git a/0.0.3/top-level-namespace.html b/0.0.3/top-level-namespace.html new file mode 100644 index 0000000..322347a --- /dev/null +++ b/0.0.3/top-level-namespace.html @@ -0,0 +1,110 @@ + + + + + + + Top Level Namespace + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Top Level Namespace + + + +

+
+ + + + + + + + + + + +
+ +

Defined Under Namespace

+

+ + + Modules: UnicodePlot + + + + +

+ + + + + + + + + +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot.html b/0.0.4/UnicodePlot.html new file mode 100644 index 0000000..1fff8e4 --- /dev/null +++ b/0.0.4/UnicodePlot.html @@ -0,0 +1,1352 @@ + + + + + + + Module: UnicodePlot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/plot.rb,
+ src/lib/unicode_plot/utils.rb,
src/lib/unicode_plot/canvas.rb,
src/lib/unicode_plot/barplot.rb,
src/lib/unicode_plot/boxplot.rb,
src/lib/unicode_plot/version.rb,
src/lib/unicode_plot/lineplot.rb,
src/lib/unicode_plot/renderer.rb,
src/lib/unicode_plot/grid_plot.rb,
src/lib/unicode_plot/histogram.rb,
src/lib/unicode_plot/dot_canvas.rb,
src/lib/unicode_plot/densityplot.rb,
src/lib/unicode_plot/scatterplot.rb,
src/lib/unicode_plot/ascii_canvas.rb,
src/lib/unicode_plot/lookup_canvas.rb,
src/lib/unicode_plot/braille_canvas.rb,
src/lib/unicode_plot/density_canvas.rb,
src/lib/unicode_plot/styled_printer.rb,
src/lib/unicode_plot/value_transformer.rb
+
+
+ +
+ +

Defined Under Namespace

+

+ + + Modules: BorderMaps, BorderPrinter, StyledPrinter, Utils, ValueTransformer, Version + + + + Classes: AsciiCanvas, Barplot, Boxplot, BrailleCanvas, Canvas, DensityCanvas, DotCanvas, GridPlot, Lineplot, LookupCanvas, Plot, Renderer, Scatterplot + + +

+ + +

+ Constant Summary + collapse +

+ +
+ +
VERSION = + +
+
"0.0.4"
+ +
BORDER_MAP = + +
+
{
+  solid:   BorderMaps::BORDER_SOLID,
+  corners: BorderMaps::BORDER_CORNERS,
+  barplot: BorderMaps::BORDER_BARPLOT,
+}.freeze
+ +
+ + + + + + + + + +

+ Class Method Summary + collapse +

+ + + + + + +
+

Class Method Details

+ + +
+

+ + .barplot(*args, width: Plot::DEFAULT_WIDTH, color: Barplot::DEFAULT_COLOR, symbol: Barplot::DEFAULT_SYMBOL, border: :barplot, xscale: nil, xlabel: nil, data: nil, **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 72
+
+module_function def barplot(*args,
+                            width: Plot::DEFAULT_WIDTH,
+                            color: Barplot::DEFAULT_COLOR,
+                            symbol: Barplot::DEFAULT_SYMBOL,
+                            border: :barplot,
+                            xscale: nil,
+                            xlabel: nil,
+                            data: nil,
+                            **kw)
+  case args.length
+  when 0
+    data = Hash(data)
+    keys = data.keys.map(&:to_s)
+    heights = data.values
+  when 2
+    keys = Array(args[0])
+    heights = Array(args[1])
+  else
+    raise ArgumentError, "invalid arguments"
+  end
+
+  unless keys.length == heights.length
+    raise ArgumentError, "The given vectors must be of the same length"
+  end
+  unless heights.min >= 0
+    raise ArgumentError, "All values have to be positive. Negative bars are not supported."
+  end
+
+  xlabel ||= ValueTransformer.transform_name(xscale)
+  plot = Barplot.new(heights, width, color, symbol, xscale,
+                     border: border, xlabel: xlabel,
+                     **kw)
+  keys.each_with_index do |key, i|
+    plot.annotate_row!(:l, i, key)
+  end
+
+  plot
+end
+
+ + +
+

+ + .barplot!(plot, *args, data: nil, **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 111
+
+module_function def barplot!(plot,
+                             *args,
+                             data: nil,
+                             **kw)
+  case args.length
+  when 0
+    data = Hash(data)
+    keys = data.keys.map(&:to_s)
+    heights = data.values
+  when 2
+    keys = Array(args[0])
+    heights = Array(args[1])
+  else
+    raise ArgumentError, "invalid arguments"
+  end
+
+  unless keys.length == heights.length
+    raise ArgumentError, "The given vectors must be of the same length"
+  end
+  if keys.empty?
+    raise ArgumentError, "Can't append empty array to barplot"
+  end
+
+  cur_idx = plot.n_rows
+  plot.add_row!(heights)
+  keys.each_with_index do |key, i|
+    plot.annotate_row!(:l, cur_idx + i, key)
+  end
+  plot
+end
+
+
+ +
+

+ + .boxplot(*args, data: nil, border: :corners, color: Boxplot::DEFAULT_COLOR, width: Plot::DEFAULT_WIDTH, xlim: [0, 0], **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 94
+
+module_function def boxplot(*args,
+                            data: nil,
+                            border: :corners,
+                            color: Boxplot::DEFAULT_COLOR,
+                            width: Plot::DEFAULT_WIDTH,
+                            xlim: [0, 0],
+                            **kw)
+  case args.length
+  when 0
+    data = Hash(data)
+    text = data.keys
+    data = data.values
+  when 1
+    data = args[0]
+  when 2
+    text = Array(args[0])
+    data = args[1]
+  else
+    raise ArgumentError, "wrong number of arguments"
+  end
+
+  case data[0]
+  when Numeric
+    data = [data]
+  when Array
+    # do nothing
+  else
+    data = data.to_ary
+  end
+  text ||= Array.new(data.length, "")
+
+  unless text.length == data.length
+    raise ArgumentError, "wrong number of text"
+  end
+
+  unless xlim.length == 2
+    raise ArgumentError, "xlim must be a length 2 array"
+  end
+
+  min_x, max_x = Utils.extend_limits(data.map(&:minmax).flatten, xlim)
+  width = [width, Boxplot::MIN_WIDTH].max
+
+  plot = Boxplot.new(data[0], width, color, min_x, max_x,
+                     border: border, **kw)
+  (1 ... data.length).each do |i|
+    plot.add_series!(data[i])
+  end
+
+  mean_x = (min_x + max_x) / 2.0
+  min_x_str  = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s
+  mean_x_str = (Utils.roundable?(mean_x) ? mean_x.round : mean_x).to_s
+  max_x_str  = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s
+  plot.annotate!(:bl, min_x_str, color: :light_black)
+  plot.annotate!(:b,  mean_x_str, color: :light_black)
+  plot.annotate!(:br, max_x_str, color: :light_black)
+
+  text.each_with_index do |name, i|
+    plot.annotate_row!(:l, i*3+1, name) if name.length > 0
+  end
+
+  plot
+end
+
+
+ +
+

+ + .boxplot!(plot, *args, **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 157
+
+module_function def boxplot!(plot, *args, **kw)
+  case args.length
+  when 1
+    data = args[0]
+    name = kw[:name] || ""
+  when 2
+    name = args[0]
+    data = args[1]
+  else
+    raise ArgumentError, "worng number of arguments"
+  end
+
+  if data.empty?
+    raise ArgumentError, "Can't append empty array to boxplot"
+  end
+
+  plot.add_series!(data)
+
+  plot.annotate_row!(:l, (plot.n_data - 1)*3+1, name) if name && name != ""
+
+  min_x = plot.min_x
+  max_x = plot.max_x
+  mean_x = (min_x + max_x) / 2.0
+  min_x_str  = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s
+  mean_x_str = (Utils.roundable?(mean_x) ? mean_x.round : mean_x).to_s
+  max_x_str  = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s
+  plot.annotate!(:bl, min_x_str, color: :light_black)
+  plot.annotate!(:b,  mean_x_str, color: :light_black)
+  plot.annotate!(:br, max_x_str, color: :light_black)
+
+  plot
+end
+
+
+ +
+

+ + .densityplot(x, y, color: :auto, grid: false, name: "", **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+2
+3
+4
+5
+
+
# File 'src/lib/unicode_plot/densityplot.rb', line 2
+
+module_function def densityplot(x, y, color: :auto, grid: false, name: "", **kw)
+  plot = GridPlot.new(x, y, :density, grid: grid, **kw)
+  scatterplot!(plot, x, y, color: color, name: name)
+end
+
+
+ +
+

+ + .densityplot!(plot, x, y, **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+7
+8
+9
+
+
# File 'src/lib/unicode_plot/densityplot.rb', line 7
+
+module_function def densityplot!(plot, x, y, **kw)
+  scatterplot!(plot, x, y, **kw)
+end
+
+
+ +
+

+ + .histogram(x, nbins: nil, closed: :left, symbol: "▇", **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+
+
# File 'src/lib/unicode_plot/histogram.rb', line 4
+
+module_function def histogram(x,
+                              nbins: nil,
+                              closed: :left,
+                              symbol: "",
+                              **kw)
+  hist = x.histogram(*[nbins].compact, closed: closed)
+  edge, counts = hist.edge, hist.weights
+  labels = []
+  bin_width = edge[1] - edge[0]
+  pad_left, pad_right = 0, 0
+  (0 ... edge.length).each do |i|
+    val1 = Utils.float_round_log10(edge[i], bin_width)
+    val2 = Utils.float_round_log10(val1 + bin_width, bin_width)
+    a1 = val1.to_s.split('.', 2).map(&:length)
+    a2 = val2.to_s.split('.', 2).map(&:length)
+    pad_left  = [pad_left,  a1[0], a2[0]].max
+    pad_right = [pad_right, a1[1], a2[1]].max
+  end
+  l_str = hist.closed == :right ? "(" : "["
+  r_str = hist.closed == :right ? "]" : ")"
+  counts.each_with_index do |n, i|
+    val1 = Utils.float_round_log10(edge[i], bin_width)
+    val2 = Utils.float_round_log10(val1 + bin_width, bin_width)
+    a1 = val1.to_s.split('.', 2).map(&:length)
+    a2 = val2.to_s.split('.', 2).map(&:length)
+    labels[i] = "\e[90m#{l_str}\e[0m" +
+                (" " * (pad_left - a1[0])) +
+                val1.to_s +
+                (" " * (pad_right - a1[1])) +
+                "\e[90m, \e[0m" +
+                (" " * (pad_left - a2[0])) +
+                val2.to_s +
+                (" " * (pad_right - a2[1])) +
+                "\e[90m#{r_str}\e[0m"
+  end
+  xscale = kw.delete(:xscale)
+  xlabel = kw.delete(:xlabel) ||
+           ValueTransformer.transform_name(xscale, "Frequency")
+  barplot(labels, counts,
+          symbol: symbol,
+          xscale: xscale,
+          xlabel: xlabel,
+          **kw)
+end
+
+
+ +
+

+ + .lineplot(*args, canvas: :braille, color: :auto, name: "", **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+
+
# File 'src/lib/unicode_plot/lineplot.rb', line 7
+
+module_function def lineplot(*args,
+                             canvas: :braille,
+                             color: :auto,
+                             name: "",
+                             **kw)
+  case args.length
+  when 1
+    # y only
+    y = Array(args[0])
+    x = Array(1 .. y.length)
+  when 2
+    # x and y
+    x = Array(args[0])
+    y = Array(args[1])
+  else
+    raise ArgumentError, "wrong number of arguments"
+  end
+
+  case x[0]
+  when Time, Date
+    if x[0].is_a? Time
+      d = x.map(&:to_f)
+    else
+      origin = Date.new(1, 1, 1)
+      d = x.map {|xi| xi - origin }
+    end
+    plot = lineplot(d, y, canvas: canvas, color: color, name: name, **kw)
+    xmin, xmax = x.minmax
+    plot.annotate!(:bl, xmin.to_s, color: :light_black)
+    plot.annotate!(:br, xmax.to_s, color: :light_black)
+    plot
+  else
+    plot = Lineplot.new(x, y, canvas, **kw)
+    lineplot!(plot, x, y, color: color, name: name)
+  end
+end
+
+
+ +
+

+ + .lineplot!(plot, *args, color: :auto, name: "") ⇒ Object + + + + + +

+ + + + +
+
+
+
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+
+
# File 'src/lib/unicode_plot/lineplot.rb', line 44
+
+module_function def lineplot!(plot,
+                              *args,
+                              color: :auto,
+                              name: "")
+  case args.length
+  when 1
+    # y only
+    y = Array(args[0])
+    x = Array(1 .. y.length)
+  when 2
+    # x and y
+    x = Array(args[0])
+    y = Array(args[1])
+
+    if x.length == 1 && y.length == 1
+      # intercept and slope
+      intercept = x[0]
+      slope = y[0]
+      xmin = plot.origin_x
+      xmax = plot.origin_x + plot.plot_width
+      ymin = plot.origin_y
+      ymax = plot.origin_y + plot.plot_height
+      x = [xmin, xmax]
+      y = [intercept + xmin*slope, intercept + xmax*slope]
+    end
+  else
+    raise ArgumentError, "wrong number of arguments"
+  end
+
+  case x[0]
+  when Time, Date
+    if x[0].is_a? Time
+      d = x.map(&:to_f)
+    else
+      origin = Date.new(1, 1, 1)
+      d = x.map {|xi| xi - origin }
+    end
+    lineplot!(plot, d, y, color: color, name: name)
+  else
+    color = color == :auto ? plot.next_color : color
+    plot.annotate!(:r, name.to_s, color: color) unless name.nil? || name == ""
+    plot.lines!(x, y, color)
+  end
+  plot
+end
+
+
+ +
+

+ + .scatterplot(*args, canvas: :braille, color: :auto, name: "", **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+
+
# File 'src/lib/unicode_plot/scatterplot.rb', line 5
+
+module_function def scatterplot(*args,
+                                canvas: :braille,
+                                color: :auto,
+                                name: "",
+                                **kw)
+  case args.length
+  when 1
+    # y only
+    y = Array(args[0])
+    x = Array(1 .. y.length)
+  when 2
+    # x and y
+    x = Array(args[0])
+    y = Array(args[1])
+  else
+    raise ArgumentError, "worng number of arguments"
+  end
+
+  plot = Scatterplot.new(x, y, canvas, **kw)
+  scatterplot!(plot, x, y, color: color, name: name)
+end
+
+
+ +
+

+ + .scatterplot!(plot, *args, color: :auto, name: "") ⇒ Object + + + + + +

+ + + + +
+
+
+
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+
+
# File 'src/lib/unicode_plot/scatterplot.rb', line 27
+
+module_function def scatterplot!(plot,
+                                 *args,
+                                 color: :auto,
+                                 name: "")
+  case args.length
+  when 1
+    # y only
+    y = Array(args[0])
+    x = Array(1 .. y.length)
+  when 2
+    # x and y
+    x = Array(args[0])
+    y = Array(args[1])
+  else
+    raise ArgumentError, "worng number of arguments"
+  end
+
+  color = color == :auto ? plot.next_color : color
+  plot.annotate!(:r, name.to_s, color: color) unless name.nil? || name == ""
+  plot.points!(x, y, color)
+  plot
+end
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/AsciiCanvas.html b/0.0.4/UnicodePlot/AsciiCanvas.html new file mode 100644 index 0000000..9016bd9 --- /dev/null +++ b/0.0.4/UnicodePlot/AsciiCanvas.html @@ -0,0 +1,482 @@ + + + + + + + Class: UnicodePlot::AsciiCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::AsciiCanvas + + + +

+
+ +
+
Inherits:
+
+ LookupCanvas + + + show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/ascii_canvas.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
ASCII_SIGNS = + +
+
[
+  [ 0b100_000_000, 0b000_100_000, 0b000_000_100 ].freeze,
+  [ 0b010_000_000, 0b000_010_000, 0b000_000_010 ].freeze,
+  [ 0b001_000_000, 0b000_001_000, 0b000_000_001 ].freeze
+].freeze
+ +
ASCII_LOOKUP = + +
+
{
+  0b101_000_000 => '"',
+  0b111_111_111 => '@',
+ #0b011_110_011 => '$',
+  0b010_000_000 => '\'',
+  0b010_100_010 => '(',
+  0b010_001_010 => ')',
+  0b000_010_000 => '*',
+  0b010_111_010 => '+',
+  0b000_010_010 => ',',
+  0b000_100_100 => ',',
+  0b000_001_001 => ',',
+  0b000_111_000 => '-',
+  0b000_000_010 => '.',
+  0b000_000_100 => '.',
+  0b000_000_001 => '.',
+  0b001_010_100 => '/',
+  0b010_100_000 => '/',
+  0b001_010_110 => '/',
+  0b011_010_010 => '/',
+  0b001_010_010 => '/',
+  0b110_010_111 => '1',
+ #0b111_010_100 => '7',
+  0b010_000_010 => ':',
+  0b111_000_111 => '=',
+ #0b010_111_101 => 'A',
+ #0b011_100_011 => 'C',
+ #0b110_101_110 => 'D',
+ #0b111_110_100 => 'F',
+ #0b011_101_011 => 'G',
+ #0b101_111_101 => 'H',
+  0b111_010_111 => 'I',
+ #0b011_001_111 => 'J',
+ #0b101_110_101 => 'K',
+  0b100_100_111 => 'L',
+ #0b111_111_101 => 'M',
+ #0b101_101_101 => 'N',
+ #0b111_101_111 => 'O',
+ #0b111_111_100 => 'P',
+  0b111_010_010 => 'T',
+ #0b101_101_111 => 'U',
+  0b101_101_010 => 'V',
+ #0b101_111_111 => 'W',
+  0b101_010_101 => 'X',
+  0b101_010_010 => 'Y',
+  0b110_100_110 => '[',
+  0b010_001_000 => '\\',
+  0b100_010_001 => '\\',
+  0b110_010_010 => '\\',
+  0b100_010_011 => '\\',
+  0b100_010_010 => '\\',
+  0b011_001_011 => ']',
+  0b010_101_000 => '^',
+  0b000_000_111 => '_',
+  0b100_000_000 => '`',
+ #0b000_111_111 => 'a',
+ #0b100_111_111 => 'b',
+ #0b001_111_111 => 'd',
+ #0b001_111_010 => 'f',
+ #0b100_111_101 => 'h',
+ #0b100_101_101 => 'k',
+  0b110_010_011 => 'l',
+ #0b000_111_101 => 'n',
+  0b000_111_100 => 'r',
+ #0b000_101_111 => 'u',
+  0b000_101_010 => 'v',
+  0b011_110_011 => '{',
+  0b010_010_010 => '|',
+  0b100_100_100 => '|',
+  0b001_001_001 => '|',
+  0b110_011_110 => '}',
+}.freeze
+ +
ASCII_DECODE = + +
+
[' ']
+ +
PIXEL_PER_CHAR = + +
+
3
+ +
+ + + + + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Canvas

+

#height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from LookupCanvas

+

#pixel!, #print_row

+ + + + + + + + + +

Methods inherited from Canvas

+

#char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

+ + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(width, height, **kw) ⇒ AsciiCanvas + + + + + +

+
+

Returns a new instance of AsciiCanvas.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+106
+107
+108
+109
+110
+
+
# File 'src/lib/unicode_plot/ascii_canvas.rb', line 106
+
+def initialize(width, height, **kw)
+  super(width, height,
+        PIXEL_PER_CHAR, PIXEL_PER_CHAR,
+        **kw)
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #lookup_decode(code) ⇒ Object + + + + + +

+ + + + +
+
+
+
+116
+117
+118
+
+
# File 'src/lib/unicode_plot/ascii_canvas.rb', line 116
+
+def lookup_decode(code)
+  ASCII_DECODE[code]
+end
+
+
+ +
+

+ + #lookup_encode(x, y) ⇒ Object + + + + + +

+ + + + +
+
+
+
+112
+113
+114
+
+
# File 'src/lib/unicode_plot/ascii_canvas.rb', line 112
+
+def lookup_encode(x, y)
+  ASCII_SIGNS[x][y]
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/Barplot.html b/0.0.4/UnicodePlot/Barplot.html new file mode 100644 index 0000000..0d2e7ad --- /dev/null +++ b/0.0.4/UnicodePlot/Barplot.html @@ -0,0 +1,780 @@ + + + + + + + Class: UnicodePlot::Barplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Barplot + + + +

+
+ +
+
Inherits:
+
+ Plot + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + +
+
Includes:
+
ValueTransformer
+
+ + + + + + +
+
Defined in:
+
src/lib/unicode_plot/barplot.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
MIN_WIDTH = + +
+
10
+ +
DEFAULT_COLOR = + +
+
:green
+ +
DEFAULT_SYMBOL = + +
+
""
+ +
+ + + + + + +

Constants included + from ValueTransformer

+

ValueTransformer::PREDEFINED_TRANSFORM_FUNCTIONS

+ + + +

Constants inherited + from Plot

+

Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING, Plot::DEFAULT_WIDTH

+ + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + +

Instance Attribute Summary collapse

+
    + +
  • + + + #max_freq ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute max_freq.

    +
    + +
  • + + +
  • + + + #max_len ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute max_len.

    +
    + +
  • + + +
  • + + + #width ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute width.

    +
    + +
  • + + +
+ + + + + +

Attributes inherited from Plot

+

#border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods included from ValueTransformer

+

transform_name, #transform_values

+ + + + + + + + + +

Methods inherited from Plot

+

#annotate!, #annotate_row!, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(bars, width, color, symbol, transform, **kw) ⇒ Barplot + + + + + +

+
+

Returns a new instance of Barplot.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 9
+
+def initialize(bars, width, color, symbol, transform, **kw)
+  if symbol.length > 1
+    raise ArgumentError, "symbol must be a single character"
+  end
+  @bars = bars
+  @symbol = symbol
+  @max_freq, i = find_max(transform_values(transform, bars))
+  @max_len = bars[i].to_s.length
+  @width = [width, max_len + 7, MIN_WIDTH].max
+  @color = color
+  @symbol = symbol
+  @transform = transform
+  super(**kw)
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #max_freqObject (readonly) + + + + + +

+
+

Returns the value of attribute max_freq.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+24
+25
+26
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 24
+
+def max_freq
+  @max_freq
+end
+
+
+ + + +
+

+ + #max_lenObject (readonly) + + + + + +

+
+

Returns the value of attribute max_len.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+25
+26
+27
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 25
+
+def max_len
+  @max_len
+end
+
+
+ + + +
+

+ + #widthObject (readonly) + + + + + +

+
+

Returns the value of attribute width.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 26
+
+def width
+  @width
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #add_row!(bars) ⇒ Object + + + + + +

+ + + + +
+
+
+
+36
+37
+38
+39
+40
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 36
+
+def add_row!(bars)
+  @bars.concat(bars)
+  @max_freq, i = find_max(transform_values(@transform, bars))
+  @max_len = @bars[i].to_s.length
+end
+
+
+ +
+

+ + #n_columnsObject + + + + + +

+ + + + +
+
+
+
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 32
+
+def n_columns
+  @width
+end
+
+
+ +
+

+ + #n_rowsObject + + + + + +

+ + + + +
+
+
+
+28
+29
+30
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 28
+
+def n_rows
+  @bars.length
+end
+
+
+ +
+ + + + + +
+
+
+
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+
+
# File 'src/lib/unicode_plot/barplot.rb', line 42
+
+def print_row(out, row_index)
+  check_row_index(row_index)
+  bar = @bars[row_index]
+  max_bar_width = [width - 2 - max_len, 1].max
+  val = transform_values(@transform, bar)
+  bar_len = max_freq > 0 ?
+    ([val, 0].max.fdiv(max_freq) * max_bar_width).round :
+    0
+  bar_str = max_freq > 0 ? @symbol * bar_len : ""
+  bar_lbl = bar.to_s
+  print_styled(out, bar_str, color: @color)
+  print_styled(out, " ", bar_lbl, color: :normal)
+  pan_len = [max_bar_width + 1 + max_len - bar_len - bar_lbl.length, 0].max
+  pad = " " * pan_len.round
+  out.print(pad)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/BorderMaps.html b/0.0.4/UnicodePlot/BorderMaps.html new file mode 100644 index 0000000..2d53939 --- /dev/null +++ b/0.0.4/UnicodePlot/BorderMaps.html @@ -0,0 +1,158 @@ + + + + + + + Module: UnicodePlot::BorderMaps + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot::BorderMaps + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/renderer.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
BORDER_SOLID = + +
+
{
+  tl: "",
+  tr: "",
+  bl: "",
+  br: "",
+  t:  "",
+  l:  "",
+  b:  "",
+  r:  ""
+}.freeze
+ +
BORDER_CORNERS = + +
+
{
+  tl: "",
+  tr: "",
+  bl: "",
+  br: "",
+  t:  " ",
+  l:  " ",
+  b:  " ",
+  r:  " ",
+}.freeze
+ +
BORDER_BARPLOT = + +
+
{
+  tl: "",
+  tr: "",
+  bl: "",
+  br: "",
+  t:  " ",
+  l:  "",
+  b:  " ",
+  r:  " ",
+}.freeze
+ +
+ + + + + + + + + + +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/BorderPrinter.html b/0.0.4/UnicodePlot/BorderPrinter.html new file mode 100644 index 0000000..c46d6ed --- /dev/null +++ b/0.0.4/UnicodePlot/BorderPrinter.html @@ -0,0 +1,263 @@ + + + + + + + Module: UnicodePlot::BorderPrinter + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot::BorderPrinter + + + +

+
+ + + + + + +
+
Includes:
+
StyledPrinter
+
+ + + + +
+
Included in:
+
Canvas, Renderer
+
+ + + +
+
Defined in:
+
src/lib/unicode_plot/renderer.rb
+
+ +
+ + + + +

Constant Summary

+ +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+ + +
+

Instance Method Details

+ + +
+ + + + + +
+
+
+
+52
+53
+54
+55
+56
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 52
+
+def print_border_bottom(out, padding, length, border=:solid, color: :light_black)
+  return if border == :none
+  b = BORDER_MAP[border]
+  print_styled(out, padding, b[:bl], b[:b] * length, b[:br], color: color)
+end
+
+
+ +
+ + + + + +
+
+
+
+46
+47
+48
+49
+50
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 46
+
+def print_border_top(out, padding, length, border=:solid, color: :light_black)
+  return if border == :none
+  b = BORDER_MAP[border]
+  print_styled(out, padding, b[:tl], b[:t] * length, b[:tr], color: color)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/Boxplot.html b/0.0.4/UnicodePlot/Boxplot.html new file mode 100644 index 0000000..2b850da --- /dev/null +++ b/0.0.4/UnicodePlot/Boxplot.html @@ -0,0 +1,786 @@ + + + + + + + Class: UnicodePlot::Boxplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Boxplot + + + +

+
+ +
+
Inherits:
+
+ Plot + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/boxplot.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
MIN_WIDTH = + +
+
10
+ +
DEFAULT_COLOR = + +
+
:green
+ +
+ + + + + + +

Constants inherited + from Plot

+

Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING, Plot::DEFAULT_WIDTH

+ + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + +

Instance Attribute Summary collapse

+
    + +
  • + + + #max_x ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute max_x.

    +
    + +
  • + + +
  • + + + #min_x ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute min_x.

    +
    + +
  • + + +
+ + + + + +

Attributes inherited from Plot

+

#border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from Plot

+

#annotate!, #annotate_row!, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(data, width, color, min_x, max_x, **kw) ⇒ Boxplot + + + + + +

+
+

Returns a new instance of Boxplot.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 8
+
+def initialize(data, width, color, min_x, max_x, **kw)
+  if min_x == max_x
+    min_x -= 1
+    max_x += 1
+  end
+  width = [width, MIN_WIDTH].max
+  @data = [data.percentile([0, 25, 50, 75, 100])]
+  @color = color
+  @width = [width, MIN_WIDTH].max
+  @min_x = min_x
+  @max_x = max_x
+  super(**kw)
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #max_xObject (readonly) + + + + + +

+
+

Returns the value of attribute max_x.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+23
+24
+25
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 23
+
+def max_x
+  @max_x
+end
+
+
+ + + +
+

+ + #min_xObject (readonly) + + + + + +

+
+

Returns the value of attribute min_x.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+22
+23
+24
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 22
+
+def min_x
+  @min_x
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #add_series!(data) ⇒ Object + + + + + +

+ + + + +
+
+
+
+37
+38
+39
+40
+41
+42
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 37
+
+def add_series!(data)
+  mi, ma = data.minmax
+  @data << data.percentile([0, 25, 50, 75, 100])
+  @min_x = [mi, @min_x].min
+  @max_x = [ma, @max_x].max
+end
+
+
+ +
+

+ + #n_columnsObject + + + + + +

+ + + + +
+
+
+
+33
+34
+35
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 33
+
+def n_columns
+  @width
+end
+
+
+ +
+

+ + #n_dataObject + + + + + +

+ + + + +
+
+
+
+25
+26
+27
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 25
+
+def n_data
+  @data.length
+end
+
+
+ +
+

+ + #n_rowsObject + + + + + +

+ + + + +
+
+
+
+29
+30
+31
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 29
+
+def n_rows
+  3 * @data.length
+end
+
+
+ +
+ + + + + +
+
+
+
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+
+
# File 'src/lib/unicode_plot/boxplot.rb', line 44
+
+def print_row(out, row_index)
+  check_row_index(row_index)
+  series = @data[(row_index / 3.0).to_i]
+
+  series_row = row_index % 3
+
+  min_char       = ['', '' , ''][series_row]
+  line_char      = [' ', '' , ' '][series_row]
+  left_box_char  = ['', '' , ''][series_row]
+  line_box_char  = ['', ' ' , ''][series_row]
+  median_char    = ['', '' , ''][series_row]
+  right_box_char = ['', '' , ''][series_row]
+  max_char       = ['', '' , ''][series_row]
+
+  line = (0 ... @width).map { ' ' }
+
+  # Draw shapes first - this is most important,
+  # so they'll always be drawn even if there's not enough space
+
+  transformed = transform(series)
+  line[transformed[0] - 1] = min_char
+  line[transformed[1] - 1] = left_box_char
+  line[transformed[2] - 1] = median_char
+  line[transformed[3] - 1] = right_box_char
+  line[transformed[4] - 1] = max_char
+
+  (transformed[0] ... (transformed[1] - 1)).each do |i|
+    line[i] = line_char
+  end
+  (transformed[1] ... (transformed[2] - 1)).each do |i|
+    line[i] = line_box_char
+  end
+  (transformed[2] ... (transformed[3] - 1)).each do |i|
+    line[i] = line_box_char
+  end
+  (transformed[3] ... (transformed[4] - 1)).each do |i|
+    line[i] = line_char
+  end
+
+  print_styled(out, line.join(''), color: @color)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/BrailleCanvas.html b/0.0.4/UnicodePlot/BrailleCanvas.html new file mode 100644 index 0000000..91d2316 --- /dev/null +++ b/0.0.4/UnicodePlot/BrailleCanvas.html @@ -0,0 +1,460 @@ + + + + + + + Class: UnicodePlot::BrailleCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::BrailleCanvas + + + +

+
+ +
+
Inherits:
+
+ Canvas + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/braille_canvas.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
X_PIXEL_PER_CHAR = + +
+
2
+ +
Y_PIXEL_PER_CHAR = + +
+
4
+ +
BRAILLE_SIGNS = + +
+
[
+  [
+    0x2801,
+    0x2802,
+    0x2804,
+    0x2840,
+  ].freeze,
+  [
+    0x2808,
+    0x2810,
+    0x2820,
+    0x2880
+  ].freeze
+].freeze
+ +
+ + + + + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Canvas

+

#height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from Canvas

+

#char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

+ + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(width, height, **kw) ⇒ BrailleCanvas + + + + + +

+
+

Returns a new instance of BrailleCanvas.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+21
+22
+23
+24
+25
+26
+27
+28
+29
+
+
# File 'src/lib/unicode_plot/braille_canvas.rb', line 21
+
+def initialize(width, height, **kw)
+  super(width, height,
+        width * X_PIXEL_PER_CHAR,
+        height * Y_PIXEL_PER_CHAR,
+        "\u{2800}",
+        x_pixel_per_char: X_PIXEL_PER_CHAR,
+        y_pixel_per_char: Y_PIXEL_PER_CHAR,
+        **kw)
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #pixel!(pixel_x, pixel_y, color) ⇒ Object + + + + + +

+ + + + +
+
+
+
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+
+
# File 'src/lib/unicode_plot/braille_canvas.rb', line 31
+
+def pixel!(pixel_x, pixel_y, color)
+  unless 0 <= pixel_x && pixel_x <= pixel_width &&
+         0 <= pixel_y && pixel_y <= pixel_height
+    return color
+  end
+  pixel_x -= 1 unless pixel_x < pixel_width
+  pixel_y -= 1 unless pixel_y < pixel_height
+  tx = pixel_x.fdiv(pixel_width) * width
+  char_x = tx.floor + 1
+  char_x_off = pixel_x % X_PIXEL_PER_CHAR + 1
+  char_x += 1 if char_x < tx.round + 1 && char_x_off == 1
+
+  char_y = (pixel_y.fdiv(pixel_height) * height).floor + 1
+  char_y_off = pixel_y % Y_PIXEL_PER_CHAR + 1
+
+  index = index_at(char_x - 1, char_y - 1)
+  if index
+    @grid[index] = (@grid[index].ord | BRAILLE_SIGNS[char_x_off - 1][char_y_off - 1]).chr(Encoding::UTF_8)
+    @colors[index] |= COLOR_ENCODE[color]
+  end
+  color
+end
+
+
+ +
+ + + + + +
+
+
+
+54
+55
+56
+57
+58
+59
+60
+61
+62
+
+
# File 'src/lib/unicode_plot/braille_canvas.rb', line 54
+
+def print_row(out, row_index)
+  unless 0 <= row_index && row_index < height
+    raise ArgumentError, "row_index out of bounds"
+  end
+  y = row_index
+  (0 ... width).each do |x|
+    print_color(out, color_at(x, y), char_at(x, y))
+  end
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/Canvas.html b/0.0.4/UnicodePlot/Canvas.html new file mode 100644 index 0000000..12e13f3 --- /dev/null +++ b/0.0.4/UnicodePlot/Canvas.html @@ -0,0 +1,1715 @@ + + + + + + + Class: UnicodePlot::Canvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Canvas + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + +
+
Includes:
+
BorderPrinter
+
+ + + + + + +
+
Defined in:
+
src/lib/unicode_plot/canvas.rb
+
+ +
+ +
+

Direct Known Subclasses

+

BrailleCanvas, DensityCanvas, LookupCanvas

+
+ + + +

Constant Summary

+ +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + +

Instance Attribute Summary collapse

+
    + +
  • + + + #height ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute height.

    +
    + +
  • + + +
  • + + + #origin_x ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute origin_x.

    +
    + +
  • + + +
  • + + + #origin_y ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute origin_y.

    +
    + +
  • + + +
  • + + + #pixel_height ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute pixel_height.

    +
    + +
  • + + +
  • + + + #pixel_width ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute pixel_width.

    +
    + +
  • + + +
  • + + + #plot_height ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute plot_height.

    +
    + +
  • + + +
  • + + + #plot_width ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute plot_width.

    +
    + +
  • + + +
  • + + + #width ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute width.

    +
    + +
  • + + +
  • + + + #x_pixel_per_char ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute x_pixel_per_char.

    +
    + +
  • + + +
  • + + + #y_pixel_per_char ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute y_pixel_per_char.

    +
    + +
  • + + +
+ + + + + +

+ Class Method Summary + collapse +

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(width, height, pixel_width, pixel_height, fill_char, origin_x: 0, origin_y: 0, plot_width: 1, plot_height: 1, x_pixel_per_char: 1, y_pixel_per_char: 1) ⇒ Canvas + + + + + +

+
+

Returns a new instance of Canvas.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 20
+
+def initialize(width, height, pixel_width, pixel_height, fill_char,
+               origin_x: 0,
+               origin_y: 0,
+               plot_width: 1,
+               plot_height: 1,
+               x_pixel_per_char: 1,
+               y_pixel_per_char: 1)
+  @width = width
+  @height = height
+  @pixel_width = check_positive(pixel_width, :pixel_width)
+  @pixel_height = check_positive(pixel_height, :pixel_height)
+  @origin_x = origin_x
+  @origin_y = origin_y
+  @plot_width = plot_width
+  @plot_height = plot_height
+  @x_pixel_per_char = x_pixel_per_char
+  @y_pixel_per_char = y_pixel_per_char
+  @grid = Array.new(@width * @height, fill_char)
+  @colors = Array.new(@width * @height, COLOR_ENCODE[:normal])
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #heightObject (readonly) + + + + + +

+
+

Returns the value of attribute height.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+42
+43
+44
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 42
+
+def height
+  @height
+end
+
+
+ + + +
+

+ + #origin_xObject (readonly) + + + + + +

+
+

Returns the value of attribute origin_x.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+45
+46
+47
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 45
+
+def origin_x
+  @origin_x
+end
+
+
+ + + +
+

+ + #origin_yObject (readonly) + + + + + +

+
+

Returns the value of attribute origin_y.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+46
+47
+48
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 46
+
+def origin_y
+  @origin_y
+end
+
+
+ + + +
+

+ + #pixel_heightObject (readonly) + + + + + +

+
+

Returns the value of attribute pixel_height.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+44
+45
+46
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 44
+
+def pixel_height
+  @pixel_height
+end
+
+
+ + + +
+

+ + #pixel_widthObject (readonly) + + + + + +

+
+

Returns the value of attribute pixel_width.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+43
+44
+45
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 43
+
+def pixel_width
+  @pixel_width
+end
+
+
+ + + +
+

+ + #plot_heightObject (readonly) + + + + + +

+
+

Returns the value of attribute plot_height.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+48
+49
+50
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 48
+
+def plot_height
+  @plot_height
+end
+
+
+ + + +
+

+ + #plot_widthObject (readonly) + + + + + +

+
+

Returns the value of attribute plot_width.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+47
+48
+49
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 47
+
+def plot_width
+  @plot_width
+end
+
+
+ + + +
+

+ + #widthObject (readonly) + + + + + +

+
+

Returns the value of attribute width.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+41
+42
+43
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 41
+
+def width
+  @width
+end
+
+
+ + + +
+

+ + #x_pixel_per_charObject (readonly) + + + + + +

+
+

Returns the value of attribute x_pixel_per_char.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+49
+50
+51
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 49
+
+def x_pixel_per_char
+  @x_pixel_per_char
+end
+
+
+ + + +
+

+ + #y_pixel_per_charObject (readonly) + + + + + +

+
+

Returns the value of attribute y_pixel_per_char.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+50
+51
+52
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 50
+
+def y_pixel_per_char
+  @y_pixel_per_char
+end
+
+
+ +
+ + +
+

Class Method Details

+ + +
+

+ + .create(canvas_type, width, height, **kw) ⇒ Object + + + + + +

+ + + + +
+
+
+
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 5
+
+def self.create(canvas_type, width, height, **kw)
+  case canvas_type
+  when :ascii
+    AsciiCanvas.new(width, height, **kw)
+  when :braille
+    BrailleCanvas.new(width, height, **kw)
+  when :density
+    DensityCanvas.new(width, height, **kw)
+  when :dot
+    DotCanvas.new(width, height, **kw)
+  else
+    raise ArgumentError, "unknown canvas type: #{canvas_type}"
+  end
+end
+
+
+ +
+ +
+

Instance Method Details

+ + +
+

+ + #char_at(x, y) ⇒ Object + + + + + +

+ + + + +
+
+
+
+74
+75
+76
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 74
+
+def char_at(x, y)
+  @grid[index_at(x, y)]
+end
+
+
+ +
+

+ + #color_at(x, y) ⇒ Object + + + + + +

+ + + + +
+
+
+
+78
+79
+80
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 78
+
+def color_at(x, y)
+  @colors[index_at(x, y)]
+end
+
+
+ +
+

+ + #index_at(x, y) ⇒ Object + + + + + +

+ + + + +
+
+
+
+82
+83
+84
+85
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 82
+
+def index_at(x, y)
+  return nil unless 0 <= x && x < width && 0 <= y && y < height
+  y * width + x
+end
+
+
+ +
+

+ + #line!(x1, y1, x2, y2, color) ⇒ Object + + + + + +

+
+

digital differential analyzer algorithm

+ + +
+
+
+ + +
+ + + + +
+
+
+
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 115
+
+def line!(x1, y1, x2, y2, color)
+  if (x1 < origin_x && x2 < origin_x) ||
+      (x1 > origin_x + plot_width && x2 > origin_x + plot_width)
+    return color
+  end
+  if (y1 < origin_y && y2 < origin_y) ||
+      (y1 > origin_y + plot_height && y2 > origin_y + plot_height)
+    return color
+  end
+
+  toff = x1 - origin_x
+  px1 = toff.fdiv(plot_width) * pixel_width
+  toff = x2 - origin_x
+  px2 = toff.fdiv(plot_width) * pixel_width
+
+  toff = y1 - origin_y
+  py1 = pixel_height - toff.fdiv(plot_height) * pixel_height
+  toff = y2 - origin_y
+  py2 = pixel_height - toff.fdiv(plot_height) * pixel_height
+
+  dx = px2 - px1
+  dy = py2 - py1
+  nsteps = dx.abs > dy.abs ? dx.abs : dy.abs
+  inc_x = dx.fdiv(nsteps)
+  inc_y = dy.fdiv(nsteps)
+
+  cur_x = px1
+  cur_y = py1
+  pixel!(cur_x.floor, cur_y.floor, color)
+  1.upto(nsteps) do |i|
+    cur_x += inc_x
+    cur_y += inc_y
+    pixel!(cur_x.floor, cur_y.floor, color)
+  end
+  color
+end
+
+
+ +
+

+ + #lines!(x, y, color = :normal) ⇒ Object + + + + + +

+ + + + +
+
+
+
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 152
+
+def lines!(x, y, color = :normal)
+  if x.length != y.length
+    raise ArgumentError, "x and y must be the same length"
+  end
+  unless x.length > 0
+    raise ArgumentError, "x and y must not be empty"
+  end
+  (0 ... (x.length - 1)).each do |i|
+    line!(x[i], y[i], x[i+1], y[i+1], color)
+  end
+end
+
+
+ +
+

+ + #point!(x, y, color) ⇒ Object + + + + + +

+ + + + +
+
+
+
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 87
+
+def point!(x, y, color)
+  unless origin_x <= x && x <= origin_x + plot_width &&
+         origin_y <= y && y <= origin_y + plot_height
+    return color
+  end
+
+  plot_offset_x = x - origin_x
+  pixel_x = plot_offset_x.fdiv(plot_width) * pixel_width
+
+  plot_offset_y = y - origin_y
+  pixel_y = pixel_height - plot_offset_y.fdiv(plot_height) * pixel_height
+
+  pixel!(pixel_x.floor, pixel_y.floor, color)
+end
+
+
+ +
+

+ + #points!(x, y, color = :normal) ⇒ Object + + + + + +

+ + + + +
+
+
+
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 102
+
+def points!(x, y, color = :normal)
+  if x.length != y.length
+    raise ArgumentError, "x and y must be the same length"
+  end
+  unless x.length > 0
+    raise ArgumentError, "x and y must not be empty"
+  end
+  (0 ... x.length).each do |i|
+    point!(x[i], y[i], color)
+  end
+end
+
+
+ +
+ + + + + +
+
+
+
+67
+68
+69
+70
+71
+72
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 67
+
+def print(out)
+  (0 ... height).each do |row_index|
+    print_row(out, row_index)
+    out.puts if row_index < height - 1
+  end
+end
+
+
+ +
+

+ + #show(out) ⇒ Object + + + + + +

+ + + + +
+
+
+
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+
+
# File 'src/lib/unicode_plot/canvas.rb', line 52
+
+def show(out)
+  b = BorderMaps::BORDER_SOLID
+  border_length = width
+
+  print_border_top(out, "", border_length, :solid, color: :light_black)
+  out.puts
+  (0 ... height).each do |row_index|
+    print_styled(out, b[:l], color: :light_black)
+    print_row(out, row_index)
+    print_styled(out, b[:r], color: :light_black)
+    out.puts
+  end
+  print_border_bottom(out, "", border_length, :solid, color: :light_black)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/DensityCanvas.html b/0.0.4/UnicodePlot/DensityCanvas.html new file mode 100644 index 0000000..5b9bcc9 --- /dev/null +++ b/0.0.4/UnicodePlot/DensityCanvas.html @@ -0,0 +1,461 @@ + + + + + + + Class: UnicodePlot::DensityCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::DensityCanvas + + + +

+
+ +
+
Inherits:
+
+ Canvas + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/density_canvas.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
DENSITY_SIGNS = + +
+
[" ", "", "", "", ""].freeze
+ +
MIN_WIDTH = + +
+
5
+ +
MIN_HEIGHT = + +
+
5
+ +
X_PIXEL_PER_CHAR = + +
+
1
+ +
Y_PIXEL_PER_CHAR = + +
+
2
+ +
+ + + + + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Canvas

+

#height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from Canvas

+

#char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

+ + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(width, height, **kw) ⇒ DensityCanvas + + + + + +

+
+

Returns a new instance of DensityCanvas.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+
+
# File 'src/lib/unicode_plot/density_canvas.rb', line 11
+
+def initialize(width, height, **kw)
+  width = [width, MIN_WIDTH].max
+  height = [height, MIN_HEIGHT].max
+  @max_density = 1
+  super(width, height,
+        width * X_PIXEL_PER_CHAR,
+        height * Y_PIXEL_PER_CHAR,
+        0,
+        x_pixel_per_char: X_PIXEL_PER_CHAR,
+        y_pixel_per_char: Y_PIXEL_PER_CHAR,
+        **kw)
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #pixel!(pixel_x, pixel_y, color) ⇒ Object + + + + + +

+ + + + +
+
+
+
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+
+
# File 'src/lib/unicode_plot/density_canvas.rb', line 24
+
+def pixel!(pixel_x, pixel_y, color)
+  unless 0 <= pixel_x && pixel_x <= pixel_width &&
+         0 <= pixel_y && pixel_y <= pixel_height
+    return color
+  end
+
+  pixel_x -= 1 unless pixel_x < pixel_width
+  pixel_y -= 1 unless pixel_y < pixel_height
+
+  char_x = (pixel_x.fdiv(pixel_width) * width).floor
+  char_y = (pixel_y.fdiv(pixel_height) * height).floor
+
+  index = index_at(char_x, char_y)
+  @grid[index] += 1
+  @max_density = [@max_density, @grid[index]].max
+  @colors[index] |= COLOR_ENCODE[color]
+  color
+end
+
+
+ +
+ + + + + +
+
+
+
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+
+
# File 'src/lib/unicode_plot/density_canvas.rb', line 43
+
+def print_row(out, row_index)
+  unless 0 <= row_index && row_index < height
+    raise ArgumentError, "row_index out of bounds"
+  end
+  y = row_index
+  den_sign_count = DENSITY_SIGNS.length
+  val_scale = (den_sign_count - 1).fdiv(@max_density)
+  (0 ... width).each do |x|
+    den_index = (char_at(x, y) * val_scale).round
+    print_color(out, color_at(x, y), DENSITY_SIGNS[den_index])
+  end
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/DotCanvas.html b/0.0.4/UnicodePlot/DotCanvas.html new file mode 100644 index 0000000..16fb28d --- /dev/null +++ b/0.0.4/UnicodePlot/DotCanvas.html @@ -0,0 +1,417 @@ + + + + + + + Class: UnicodePlot::DotCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::DotCanvas + + + +

+
+ +
+
Inherits:
+
+ LookupCanvas + + + show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/dot_canvas.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
DOT_SIGNS = + +
+
[
+  [
+    0b10,
+    0b01
+  ].freeze
+].freeze
+ +
DOT_DECODE = + +
+
[
+  -' ', # 0b00
+  -'.', # 0b01
+  -"'", # 0b10
+  -':', # 0b11
+].freeze
+ +
X_PIXEL_PER_CHAR = + +
+
1
+ +
Y_PIXEL_PER_CHAR = + +
+
2
+ +
+ + + + + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Canvas

+

#height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from LookupCanvas

+

#pixel!, #print_row

+ + + + + + + + + +

Methods inherited from Canvas

+

#char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

+ + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(width, height, **kw) ⇒ DotCanvas + + + + + +

+
+

Returns a new instance of DotCanvas.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+20
+21
+22
+23
+24
+
+
# File 'src/lib/unicode_plot/dot_canvas.rb', line 20
+
+def initialize(width, height, **kw)
+  super(width, height,
+        X_PIXEL_PER_CHAR, Y_PIXEL_PER_CHAR,
+        **kw)
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #lookup_decode(code) ⇒ Object + + + + + +

+ + + + +
+
+
+
+30
+31
+32
+
+
# File 'src/lib/unicode_plot/dot_canvas.rb', line 30
+
+def lookup_decode(code)
+  DOT_DECODE[code]
+end
+
+
+ +
+

+ + #lookup_encode(x, y) ⇒ Object + + + + + +

+ + + + +
+
+
+
+26
+27
+28
+
+
# File 'src/lib/unicode_plot/dot_canvas.rb', line 26
+
+def lookup_encode(x, y)
+  DOT_SIGNS[x][y]
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/GridPlot.html b/0.0.4/UnicodePlot/GridPlot.html new file mode 100644 index 0000000..07294ba --- /dev/null +++ b/0.0.4/UnicodePlot/GridPlot.html @@ -0,0 +1,861 @@ + + + + + + + Class: UnicodePlot::GridPlot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::GridPlot + + + +

+
+ +
+
Inherits:
+
+ Plot + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/grid_plot.rb
+
+ +
+ +
+

Direct Known Subclasses

+

Lineplot, Scatterplot

+
+ + +

+ Constant Summary + collapse +

+ +
+ +
MIN_WIDTH = + +
+
5
+ +
MIN_HEIGHT = + +
+
2
+ +
DEFAULT_HEIGHT = + +
+
15
+ +
+ + + + + + +

Constants inherited + from Plot

+

Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING, Plot::DEFAULT_WIDTH

+ + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Plot

+

#border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from Plot

+

#annotate!, #annotate_row!, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(x, y, canvas, width: DEFAULT_WIDTH, height: DEFAULT_HEIGHT, xlim: [0, 0], ylim: [0, 0], grid: true, **kw) ⇒ GridPlot + + + + + +

+
+

Returns a new instance of GridPlot.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 7
+
+def initialize(x, y, canvas,
+               width: DEFAULT_WIDTH,
+               height: DEFAULT_HEIGHT,
+               xlim: [0, 0], 
+               ylim: [0, 0],
+               grid: true,
+               **kw)
+  if x.length != y.length
+    raise ArgumentError, "x and y must be the same length"
+  end
+  unless x.length > 0
+    raise ArgumentError, "x and y must not be empty"
+  end
+  unless xlim.length == 2 && ylim.length == 2
+    raise ArgumentError, "xlim and ylim must be 2-length arrays"
+  end
+  width = [width, MIN_WIDTH].max
+  height = [height, MIN_HEIGHT].max
+  min_x, max_x = Utils.extend_limits(x, xlim)
+  min_y, max_y = Utils.extend_limits(y, ylim)
+  origin_x = min_x
+  origin_y = min_y
+  plot_width = max_x - origin_x
+  plot_height = max_y - origin_y
+  @canvas = Canvas.create(canvas, width, height,
+                          origin_x: origin_x,
+                          origin_y: origin_y,
+                          plot_width: plot_width,
+                          plot_height: plot_height)
+  super(**kw)
+
+  min_x_str = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s
+  max_x_str = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s
+  min_y_str = (Utils.roundable?(min_y) ? min_y.round : min_y).to_s
+  max_y_str = (Utils.roundable?(max_y) ? max_y.round : max_y).to_s
+
+  annotate_row!(:l, 0, max_y_str, color: :light_black)
+  annotate_row!(:l, height-1, min_y_str, color: :light_black)
+  annotate!(:bl, min_x_str, color: :light_black)
+  annotate!(:br, max_x_str, color: :light_black)
+
+  if grid
+    if min_y < 0 && 0 < max_y
+      step = plot_width.fdiv(width * @canvas.x_pixel_per_char - 1)
+      min_x.step(max_x, by: step) do |i|
+        @canvas.point!(i, 0, :normal)
+      end
+    end
+    if min_x < 0 && 0 < max_x
+      step = plot_height.fdiv(height * @canvas.y_pixel_per_char - 1)
+      min_y.step(max_y, by: step) do |i|
+        @canvas.point!(0, i, :normal)
+      end
+    end
+  end
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #lines!(x, y, color) ⇒ Object + + + + + +

+ + + + +
+
+
+
+92
+93
+94
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 92
+
+def lines!(x, y, color)
+  @canvas.lines!(x, y, color)
+end
+
+
+ +
+

+ + #n_columnsObject + + + + + +

+ + + + +
+
+
+
+84
+85
+86
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 84
+
+def n_columns
+  @canvas.width
+end
+
+
+ +
+

+ + #n_rowsObject + + + + + +

+ + + + +
+
+
+
+80
+81
+82
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 80
+
+def n_rows
+  @canvas.height
+end
+
+
+ +
+

+ + #origin_xObject + + + + + +

+ + + + +
+
+
+
+64
+65
+66
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 64
+
+def origin_x
+  @canvas.origin_x
+end
+
+
+ +
+

+ + #origin_yObject + + + + + +

+ + + + +
+
+
+
+68
+69
+70
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 68
+
+def origin_y
+  @canvas.origin_y
+end
+
+
+ +
+

+ + #plot_heightObject + + + + + +

+ + + + +
+
+
+
+76
+77
+78
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 76
+
+def plot_height
+  @canvas.plot_height
+end
+
+
+ +
+

+ + #plot_widthObject + + + + + +

+ + + + +
+
+
+
+72
+73
+74
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 72
+
+def plot_width
+  @canvas.plot_width
+end
+
+
+ +
+

+ + #points!(x, y, color) ⇒ Object + + + + + +

+ + + + +
+
+
+
+88
+89
+90
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 88
+
+def points!(x, y, color)
+  @canvas.points!(x, y, color)
+end
+
+
+ +
+ + + + + +
+
+
+
+96
+97
+98
+
+
# File 'src/lib/unicode_plot/grid_plot.rb', line 96
+
+def print_row(out, row_index)
+  @canvas.print_row(out, row_index)
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/Lineplot.html b/0.0.4/UnicodePlot/Lineplot.html new file mode 100644 index 0000000..52a358e --- /dev/null +++ b/0.0.4/UnicodePlot/Lineplot.html @@ -0,0 +1,187 @@ + + + + + + + Class: UnicodePlot::Lineplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Lineplot + + + +

+
+ +
+
Inherits:
+
+ GridPlot + +
    +
  • Object
  • + + + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/lineplot.rb
+
+ +
+ + + + +

Constant Summary

+ +

Constants inherited + from GridPlot

+

GridPlot::DEFAULT_HEIGHT, GridPlot::MIN_HEIGHT, GridPlot::MIN_WIDTH

+ + + +

Constants inherited + from Plot

+

Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING, Plot::DEFAULT_WIDTH

+ + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Plot

+

#border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

+ + + + + + + + + +

Method Summary

+ +

Methods inherited from GridPlot

+

#initialize, #lines!, #n_columns, #n_rows, #origin_x, #origin_y, #plot_height, #plot_width, #points!, #print_row

+ + + + + + + + + +

Methods inherited from Plot

+

#annotate!, #annotate_row!, #initialize, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +

This class inherits a constructor from UnicodePlot::GridPlot

+ +
+ + +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/LookupCanvas.html b/0.0.4/UnicodePlot/LookupCanvas.html new file mode 100644 index 0000000..a809fa9 --- /dev/null +++ b/0.0.4/UnicodePlot/LookupCanvas.html @@ -0,0 +1,425 @@ + + + + + + + Class: UnicodePlot::LookupCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::LookupCanvas + + + +

+
+ +
+
Inherits:
+
+ Canvas + +
    +
  • Object
  • + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/lookup_canvas.rb
+
+ +
+ +
+

Direct Known Subclasses

+

AsciiCanvas, DotCanvas

+
+ + + +

Constant Summary

+ +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Canvas

+

#height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods inherited from Canvas

+

#char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

+ + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(width, height, x_pixel_per_char, y_pixel_per_char, fill_char = 0, **kw) ⇒ LookupCanvas + + + + + +

+
+

Returns a new instance of LookupCanvas.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+3
+4
+5
+6
+7
+8
+9
+10
+11
+
+
# File 'src/lib/unicode_plot/lookup_canvas.rb', line 3
+
+def initialize(width, height, x_pixel_per_char, y_pixel_per_char, fill_char=0, **kw)
+  super(width, height,
+        width * x_pixel_per_char,
+        height * y_pixel_per_char,
+        fill_char,
+        x_pixel_per_char: x_pixel_per_char,
+        y_pixel_per_char: y_pixel_per_char,
+        **kw)
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #pixel!(pixel_x, pixel_y, color) ⇒ Object + + + + + +

+ + + + +
+
+
+
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+
+
# File 'src/lib/unicode_plot/lookup_canvas.rb', line 13
+
+def pixel!(pixel_x, pixel_y, color)
+  unless 0 <= pixel_x && pixel_x <= pixel_width &&
+         0 <= pixel_y && pixel_y <= pixel_height
+    return color
+  end
+  pixel_x -= 1 unless pixel_x < pixel_width
+  pixel_y -= 1 unless pixel_y < pixel_height
+
+  tx = pixel_x.fdiv(pixel_width) * width
+  char_x = tx.floor + 1
+  char_x_off = pixel_x % x_pixel_per_char + 1
+  char_x += 1 if char_x < tx.round + 1 && char_x_off == 1
+
+  char_y = (pixel_y.fdiv(pixel_height) * height).floor + 1
+  char_y_off = pixel_y % y_pixel_per_char + 1
+
+  index = index_at(char_x - 1, char_y - 1)
+  if index
+    @grid[index] |= lookup_encode(char_x_off - 1, char_y_off - 1)
+    @colors[index] |= COLOR_ENCODE[color]
+  end
+end
+
+
+ +
+ + + + + +
+
+
+
+36
+37
+38
+39
+40
+41
+42
+43
+44
+
+
# File 'src/lib/unicode_plot/lookup_canvas.rb', line 36
+
+def print_row(out, row_index)
+  unless 0 <= row_index && row_index < height
+    raise ArgumentError, "row_index out of bounds"
+  end
+  y = row_index
+  (0 ... width).each do |x|
+    print_color(out, color_at(x, y), lookup_decode(char_at(x, y)))
+  end
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/Plot.html b/0.0.4/UnicodePlot/Plot.html new file mode 100644 index 0000000..1343682 --- /dev/null +++ b/0.0.4/UnicodePlot/Plot.html @@ -0,0 +1,1862 @@ + + + + + + + Class: UnicodePlot::Plot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Plot + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + +
+
Includes:
+
StyledPrinter
+
+ + + + + + +
+
Defined in:
+
src/lib/unicode_plot/plot.rb
+
+ +
+ +
+

Direct Known Subclasses

+

Barplot, Boxplot, GridPlot

+
+ + +

+ Constant Summary + collapse +

+ +
+ +
DEFAULT_WIDTH = + +
+
40
+ +
DEFAULT_BORDER = + +
+
:solid
+ +
DEFAULT_MARGIN = + +
+
3
+ +
DEFAULT_PADDING = + +
+
1
+ +
COLOR_CYCLE = + +
+
[
+  :green,
+  :blue,
+  :red,
+  :magenta,
+  :yellow,
+  :cyan
+].freeze
+ +
+ + + + + + +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + +

Instance Attribute Summary collapse

+
    + +
  • + + + #border ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute border.

    +
    + +
  • + + +
  • + + + #colors_deco ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute colors_deco.

    +
    + +
  • + + +
  • + + + #colors_left ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute colors_left.

    +
    + +
  • + + +
  • + + + #colors_right ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute colors_right.

    +
    + +
  • + + +
  • + + + #decorations ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute decorations.

    +
    + +
  • + + +
  • + + + #labels_left ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute labels_left.

    +
    + +
  • + + +
  • + + + #labels_right ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute labels_right.

    +
    + +
  • + + +
  • + + + #margin ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute margin.

    +
    + +
  • + + +
  • + + + #padding ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute padding.

    +
    + +
  • + + +
  • + + + #title ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute title.

    +
    + +
  • + + +
  • + + + #xlabel ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute xlabel.

    +
    + +
  • + + +
  • + + + #ylabel ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute ylabel.

    +
    + +
  • + + +
+ + + + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(title: nil, xlabel: nil, ylabel: nil, border: DEFAULT_BORDER, margin: DEFAULT_MARGIN, padding: DEFAULT_PADDING, labels: true) ⇒ Plot + + + + + +

+
+

Returns a new instance of Plot.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+
+
# File 'src/lib/unicode_plot/plot.rb', line 10
+
+def initialize(title: nil,
+               xlabel: nil,
+               ylabel: nil,
+               border: DEFAULT_BORDER,
+               margin: DEFAULT_MARGIN,
+               padding: DEFAULT_PADDING,
+               labels: true)
+  @title = title
+  @xlabel = xlabel
+  @ylabel = ylabel
+  @border = border
+  @margin = check_margin(margin)
+  @padding = padding
+  @labels_left = {}
+  @colors_left = {}
+  @labels_right = {}
+  @colors_right = {}
+  @decorations = {}
+  @colors_deco = {}
+  @show_labels = labels
+  @auto_color = 0
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #borderObject (readonly) + + + + + +

+
+

Returns the value of attribute border.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+36
+37
+38
+
+
# File 'src/lib/unicode_plot/plot.rb', line 36
+
+def border
+  @border
+end
+
+
+ + + +
+

+ + #colors_decoObject (readonly) + + + + + +

+
+

Returns the value of attribute colors_deco.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+44
+45
+46
+
+
# File 'src/lib/unicode_plot/plot.rb', line 44
+
+def colors_deco
+  @colors_deco
+end
+
+
+ + + +
+

+ + #colors_leftObject (readonly) + + + + + +

+
+

Returns the value of attribute colors_left.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+40
+41
+42
+
+
# File 'src/lib/unicode_plot/plot.rb', line 40
+
+def colors_left
+  @colors_left
+end
+
+
+ + + +
+

+ + #colors_rightObject (readonly) + + + + + +

+
+

Returns the value of attribute colors_right.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+42
+43
+44
+
+
# File 'src/lib/unicode_plot/plot.rb', line 42
+
+def colors_right
+  @colors_right
+end
+
+
+ + + +
+

+ + #decorationsObject (readonly) + + + + + +

+
+

Returns the value of attribute decorations.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+43
+44
+45
+
+
# File 'src/lib/unicode_plot/plot.rb', line 43
+
+def decorations
+  @decorations
+end
+
+
+ + + +
+

+ + #labels_leftObject (readonly) + + + + + +

+
+

Returns the value of attribute labels_left.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+39
+40
+41
+
+
# File 'src/lib/unicode_plot/plot.rb', line 39
+
+def labels_left
+  @labels_left
+end
+
+
+ + + +
+

+ + #labels_rightObject (readonly) + + + + + +

+
+

Returns the value of attribute labels_right.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+41
+42
+43
+
+
# File 'src/lib/unicode_plot/plot.rb', line 41
+
+def labels_right
+  @labels_right
+end
+
+
+ + + +
+

+ + #marginObject (readonly) + + + + + +

+
+

Returns the value of attribute margin.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+37
+38
+39
+
+
# File 'src/lib/unicode_plot/plot.rb', line 37
+
+def margin
+  @margin
+end
+
+
+ + + +
+

+ + #paddingObject (readonly) + + + + + +

+
+

Returns the value of attribute padding.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+38
+39
+40
+
+
# File 'src/lib/unicode_plot/plot.rb', line 38
+
+def padding
+  @padding
+end
+
+
+ + + +
+

+ + #titleObject (readonly) + + + + + +

+
+

Returns the value of attribute title.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+33
+34
+35
+
+
# File 'src/lib/unicode_plot/plot.rb', line 33
+
+def title
+  @title
+end
+
+
+ + + +
+

+ + #xlabelObject (readonly) + + + + + +

+
+

Returns the value of attribute xlabel.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+34
+35
+36
+
+
# File 'src/lib/unicode_plot/plot.rb', line 34
+
+def xlabel
+  @xlabel
+end
+
+
+ + + +
+

+ + #ylabelObject (readonly) + + + + + +

+
+

Returns the value of attribute ylabel.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+35
+36
+37
+
+
# File 'src/lib/unicode_plot/plot.rb', line 35
+
+def ylabel
+  @ylabel
+end
+
+
+ +
+ + +
+

Instance Method Details

+ + +
+

+ + #annotate!(loc, value, color: :normal) ⇒ Object + + + + + +

+ + + + +
+
+
+
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+
+
# File 'src/lib/unicode_plot/plot.rb', line 66
+
+def annotate!(loc, value, color: :normal)
+  case loc
+  when :l
+    (0 ... n_rows).each do |row|
+      if @labels_left.fetch(row, "") == ""
+        @labels_left[row] = value
+        @colors_left[row] = color
+        break
+      end
+    end
+  when :r
+    (0 ... n_rows).each do |row|
+      if @labels_right.fetch(row, "") == ""
+        @labels_right[row] = value
+        @colors_right[row] = color
+        break
+      end
+    end
+  when :t, :b, :tl, :tr, :bl, :br
+    @decorations[loc] = value
+    @colors_deco[loc] = color
+  else
+    raise ArgumentError,
+      "unknown location to annotate (#{loc.inspect} for :t, :b, :l, :r, :tl, :tr, :bl, or :br)"
+  end
+end
+
+
+ +
+

+ + #annotate_row!(loc, row_index, value, color: :normal) ⇒ Object + + + + + +

+ + + + +
+
+
+
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+
+
# File 'src/lib/unicode_plot/plot.rb', line 93
+
+def annotate_row!(loc, row_index, value, color: :normal)
+  case loc
+  when :l
+    @labels_left[row_index] = value
+    @colors_left[row_index] = color
+  when :r
+    @labels_right[row_index] = value
+    @colors_right[row_index] = color
+  else
+    raise ArgumentError, "unknown location `#{loc}`, try :l or :r instead"
+  end
+end
+
+
+ +
+

+ + #next_colorObject + + + + + +

+ + + + +
+
+
+
+119
+120
+121
+122
+123
+
+
# File 'src/lib/unicode_plot/plot.rb', line 119
+
+def next_color
+  COLOR_CYCLE[@auto_color]
+ensure
+  @auto_color = (@auto_color + 1) % COLOR_CYCLE.length
+end
+
+
+ +
+

+ + #render(out = $stdout, newline: true) ⇒ Object + + + + + +

+ + + + +
+
+
+
+106
+107
+108
+
+
# File 'src/lib/unicode_plot/plot.rb', line 106
+
+def render(out=$stdout, newline: true)
+  Renderer.render(out, self, newline)
+end
+
+
+ +
+

+ + #show_labels?Boolean + + + + + +

+
+ + + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+62
+63
+64
+
+
# File 'src/lib/unicode_plot/plot.rb', line 62
+
+def show_labels?
+  @show_labels
+end
+
+
+ +
+

+ + #title_given?Boolean + + + + + +

+
+ + + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+46
+47
+48
+
+
# File 'src/lib/unicode_plot/plot.rb', line 46
+
+def title_given?
+  title && title != ""
+end
+
+
+ +
+

+ + #to_sObject + + + + + +

+ + + + +
+
+
+
+125
+126
+127
+128
+129
+130
+131
+
+
# File 'src/lib/unicode_plot/plot.rb', line 125
+
+def to_s
+  StringIO.open do |sio|
+    render(sio, newline: false)
+    sio.close
+    sio.string
+  end
+end
+
+
+ +
+

+ + #xlabel_given?Boolean + + + + + +

+
+ + + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+50
+51
+52
+
+
# File 'src/lib/unicode_plot/plot.rb', line 50
+
+def xlabel_given?
+  xlabel && xlabel != ""
+end
+
+
+ +
+

+ + #ylabel_given?Boolean + + + + + +

+
+ + + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+54
+55
+56
+
+
# File 'src/lib/unicode_plot/plot.rb', line 54
+
+def ylabel_given?
+  ylabel && ylabel != ""
+end
+
+
+ +
+

+ + #ylabel_lengthObject + + + + + +

+ + + + +
+
+
+
+58
+59
+60
+
+
# File 'src/lib/unicode_plot/plot.rb', line 58
+
+def ylabel_length
+  ylabel&.length || 0
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/Renderer.html b/0.0.4/UnicodePlot/Renderer.html new file mode 100644 index 0000000..76e8016 --- /dev/null +++ b/0.0.4/UnicodePlot/Renderer.html @@ -0,0 +1,525 @@ + + + + + + + Class: UnicodePlot::Renderer + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Renderer + + + +

+
+ +
+
Inherits:
+
+ Object + +
    +
  • Object
  • + + + +
+ show all + +
+
+ + + + + + +
+
Includes:
+
BorderPrinter
+
+ + + + + + +
+
Defined in:
+
src/lib/unicode_plot/renderer.rb
+
+ +
+ + + + +

Constant Summary

+ +

Constants included + from StyledPrinter

+

StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

+ + +

Instance Attribute Summary collapse

+
    + +
  • + + + #out ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute out.

    +
    + +
  • + + +
  • + + + #plot ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

    Returns the value of attribute plot.

    +
    + +
  • + + +
+ + + + + +

+ Class Method Summary + collapse +

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + + + + + + + + +

Methods included from BorderPrinter

+

#print_border_bottom, #print_border_top

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +
+

+ + #initialize(plot) ⇒ Renderer + + + + + +

+
+

Returns a new instance of Renderer.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+66
+67
+68
+69
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 66
+
+def initialize(plot)
+  @plot = plot
+  @out = nil
+end
+
+
+ +
+ +
+

Instance Attribute Details

+ + + +
+

+ + #outObject (readonly) + + + + + +

+
+

Returns the value of attribute out.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+72
+73
+74
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 72
+
+def out
+  @out
+end
+
+
+ + + +
+

+ + #plotObject (readonly) + + + + + +

+
+

Returns the value of attribute plot.

+ + +
+
+
+ + +
+ + + + +
+
+
+
+71
+72
+73
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 71
+
+def plot
+  @plot
+end
+
+
+ +
+ + +
+

Class Method Details

+ + +
+

+ + .render(out, plot, newline) ⇒ Object + + + + + +

+ + + + +
+
+
+
+62
+63
+64
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 62
+
+def self.render(out, plot, newline)
+  new(plot).render(out, newline)
+end
+
+
+ +
+ +
+

Instance Method Details

+ + +
+

+ + #render(out, newline) ⇒ Object + + + + + +

+ + + + +
+
+
+
+74
+75
+76
+77
+78
+79
+80
+81
+82
+
+
# File 'src/lib/unicode_plot/renderer.rb', line 74
+
+def render(out, newline)
+  @out = out
+  init_render
+
+  render_top
+  render_rows
+  render_bottom
+  out.puts if newline
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/Scatterplot.html b/0.0.4/UnicodePlot/Scatterplot.html new file mode 100644 index 0000000..37cc09b --- /dev/null +++ b/0.0.4/UnicodePlot/Scatterplot.html @@ -0,0 +1,187 @@ + + + + + + + Class: UnicodePlot::Scatterplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Class: UnicodePlot::Scatterplot + + + +

+
+ +
+
Inherits:
+
+ GridPlot + +
    +
  • Object
  • + + + + + + + +
+ show all + +
+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/scatterplot.rb
+
+ +
+ + + + +

Constant Summary

+ +

Constants inherited + from GridPlot

+

GridPlot::DEFAULT_HEIGHT, GridPlot::MIN_HEIGHT, GridPlot::MIN_WIDTH

+ + + +

Constants inherited + from Plot

+

Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING, Plot::DEFAULT_WIDTH

+ + + +

Constants included + from StyledPrinter

+

UnicodePlot::StyledPrinter::COLOR_DECODE, UnicodePlot::StyledPrinter::COLOR_ENCODE, UnicodePlot::StyledPrinter::DISABLE_TEXT_STYLE, UnicodePlot::StyledPrinter::TEXT_COLORS

+ + + + +

Instance Attribute Summary

+ +

Attributes inherited from Plot

+

#border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

+ + + + + + + + + +

Method Summary

+ +

Methods inherited from GridPlot

+

#initialize, #lines!, #n_columns, #n_rows, #origin_x, #origin_y, #plot_height, #plot_width, #points!, #print_row

+ + + + + + + + + +

Methods inherited from Plot

+

#annotate!, #annotate_row!, #initialize, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

+ + + + + + + + + +

Methods included from StyledPrinter

+

#color?, #print_color, #print_styled

+
+

Constructor Details

+ +

This class inherits a constructor from UnicodePlot::GridPlot

+ +
+ + +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/StyledPrinter.html b/0.0.4/UnicodePlot/StyledPrinter.html new file mode 100644 index 0000000..878fdf1 --- /dev/null +++ b/0.0.4/UnicodePlot/StyledPrinter.html @@ -0,0 +1,421 @@ + + + + + + + Module: UnicodePlot::StyledPrinter + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot::StyledPrinter + + + +

+
+ + + + + + + + + +
+
Included in:
+
BorderPrinter, Plot
+
+ + + +
+
Defined in:
+
src/lib/unicode_plot/styled_printer.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
TEXT_COLORS = + +
+
{
+  black:         "\033[30m",
+  red:           "\033[31m",
+  green:         "\033[32m",
+  yellow:        "\033[33m",
+  blue:          "\033[34m",
+  magenta:       "\033[35m",
+  cyan:          "\033[36m",
+  white:         "\033[37m",
+  gray:          "\033[90m",
+  light_black:   "\033[90m",
+  light_red:     "\033[91m",
+  light_green:   "\033[92m",
+  light_yellow:  "\033[93m",
+  light_blue:    "\033[94m",
+  light_magenta: "\033[95m",
+  light_cyan:    "\033[96m",
+  normal:        "\033[0m",
+  default:       "\033[39m",
+  bold:          "\033[1m",
+  underline:     "\033[4m",
+  blink:         "\033[5m",
+  reverse:       "\033[7m",
+  hidden:        "\033[8m",
+  nothing:       "",
+}
+ +
DISABLE_TEXT_STYLE = + +
+
{
+  bold:      "\033[22m",
+  underline: "\033[24m",
+  blink:     "\033[25m",
+  reverse:   "\033[27m",
+  hidden:    "\033[28m",
+  normal:    "",
+  default:   "",
+  nothing:   "",
+}.freeze
+ +
COLOR_ENCODE = + +
+
{
+  normal:  0b000,
+  blue:    0b001,
+  red:     0b010,
+  magenta: 0b011,
+  green:   0b100,
+  cyan:    0b101,
+  yellow:  0b110,
+  white:   0b111
+}.freeze
+ +
COLOR_DECODE = + +
+
COLOR_ENCODE.map {|k, v| [v, k] }.to_h.freeze
+ +
+ + + + + + + + + +

+ Instance Method Summary + collapse +

+ + + + + + +
+

Instance Method Details

+ + +
+

+ + #color?(out) ⇒ Boolean + + + + + +

+
+ + + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+87
+88
+89
+
+
# File 'src/lib/unicode_plot/styled_printer.rb', line 87
+
+def color?(out)
+  out&.tty? || false
+end
+
+
+ +
+ + + + + +
+
+
+
+82
+83
+84
+85
+
+
# File 'src/lib/unicode_plot/styled_printer.rb', line 82
+
+def print_color(out, color, *args)
+  color = COLOR_DECODE[color]
+  print_styled(out, *args, color: color)
+end
+
+
+ +
+ + + + + +
+
+
+
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+
+
# File 'src/lib/unicode_plot/styled_printer.rb', line 60
+
+def print_styled(out, *args, bold: false, color: :normal)
+  return out.print(*args) unless color?(out)
+
+  str = StringIO.open {|sio| sio.print(*args); sio.close; sio.string }
+  color = :nothing if bold && color == :bold
+  enable_ansi = TEXT_COLORS.fetch(color, TEXT_COLORS[:default]) +
+                (bold ? TEXT_COLORS[:bold] : "")
+  disable_ansi = (bold ? DISABLE_TEXT_STYLE[:bold] : "") +
+                 DISABLE_TEXT_STYLE.fetch(color, TEXT_COLORS[:default])
+  first = true
+  StringIO.open do |sio|
+    str.each_line do |line|
+      sio.puts unless first
+      first = false
+      continue if line.empty?
+      sio.print(enable_ansi, line, disable_ansi)
+    end
+    sio.close
+    out.print(sio.string)
+  end
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/Utils.html b/0.0.4/UnicodePlot/Utils.html new file mode 100644 index 0000000..597965c --- /dev/null +++ b/0.0.4/UnicodePlot/Utils.html @@ -0,0 +1,613 @@ + + + + + + + Module: UnicodePlot::Utils + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot::Utils + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/utils.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
INT64_MIN = + +
+
-9223372036854775808
+ +
INT64_MAX = + +
+
9223372036854775807
+ +
+ + + + + + + + + +

+ Class Method Summary + collapse +

+ + + + + + +
+

Class Method Details

+ + +
+

+ + .ceil_neg_log10(x) ⇒ Object + + + + + +

+ + + + +
+
+
+
+59
+60
+61
+62
+63
+64
+65
+
+
# File 'src/lib/unicode_plot/utils.rb', line 59
+
+def ceil_neg_log10(x)
+  if roundable?(-Math.log10(x))
+    (-Math.log10(x)).ceil
+  else
+    (-Math.log10(x)).floor
+  end
+end
+
+
+ +
+

+ + .extend_limits(values, limits) ⇒ Object + + + + + +

+ + + + +
+
+
+
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+
+
# File 'src/lib/unicode_plot/utils.rb', line 5
+
+def extend_limits(values, limits)
+  mi, ma = limits.minmax.map(&:to_f)
+  if mi == 0 && ma == 0
+    mi, ma = values.minmax.map(&:to_f)
+  end
+  diff = ma - mi
+  if diff == 0
+    ma = mi + 1
+    mi = mi - 1
+  end
+  if limits == [0, 0]
+    plotting_range_narrow(mi, ma)
+  else
+    [mi, ma]
+  end
+end
+
+
+ +
+

+ + .float_round_log10(x, m) ⇒ Object + + + + + +

+ + + + +
+
+
+
+29
+30
+31
+32
+33
+34
+35
+36
+37
+
+
# File 'src/lib/unicode_plot/utils.rb', line 29
+
+def float_round_log10(x, m)
+  if x == 0
+    0.0
+  elsif x > 0
+    x.round(ceil_neg_log10(m) + 1).to_f
+  else
+    -(-x).round(ceil_neg_log10(m) + 1).to_f
+  end
+end
+
+
+ +
+

+ + .plotting_range_narrow(xmin, xmax) ⇒ Object + + + + + +

+ + + + +
+
+
+
+22
+23
+24
+25
+26
+27
+
+
# File 'src/lib/unicode_plot/utils.rb', line 22
+
+def plotting_range_narrow(xmin, xmax)
+  diff = xmax - xmin
+  xmax = round_up_subtick(xmax, diff)
+  xmin = round_down_subtick(xmin, diff)
+  [xmin.to_f, xmax.to_f]
+end
+
+
+ +
+

+ + .round_down_subtick(x, m) ⇒ Object + + + + + +

+ + + + +
+
+
+
+49
+50
+51
+52
+53
+54
+55
+56
+57
+
+
# File 'src/lib/unicode_plot/utils.rb', line 49
+
+def round_down_subtick(x, m)
+  if x == 0
+    0.0
+  elsif x > 0
+    x.floor(ceil_neg_log10(m) + 1)
+  else
+    -(-x).ceil(ceil_neg_log10(m) + 1)
+  end
+end
+
+
+ +
+

+ + .round_up_subtick(x, m) ⇒ Object + + + + + +

+ + + + +
+
+
+
+39
+40
+41
+42
+43
+44
+45
+46
+47
+
+
# File 'src/lib/unicode_plot/utils.rb', line 39
+
+def round_up_subtick(x, m)
+  if x == 0
+    0.0
+  elsif x > 0
+    x.ceil(ceil_neg_log10(m) + 1)
+  else
+    -(-x).floor(ceil_neg_log10(m) + 1)
+  end
+end
+
+
+ +
+

+ + .roundable?(x) ⇒ Boolean + + + + + +

+
+ + + +
+
+
+ +

Returns:

+
    + +
  • + + + (Boolean) + + + +
  • + +
+ +
+ + + + +
+
+
+
+70
+71
+72
+
+
# File 'src/lib/unicode_plot/utils.rb', line 70
+
+def roundable?(x)
+  x.to_i == x && INT64_MIN <= x && x < INT64_MAX
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/ValueTransformer.html b/0.0.4/UnicodePlot/ValueTransformer.html new file mode 100644 index 0000000..4f9fd40 --- /dev/null +++ b/0.0.4/UnicodePlot/ValueTransformer.html @@ -0,0 +1,317 @@ + + + + + + + Module: UnicodePlot::ValueTransformer + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot::ValueTransformer + + + +

+
+ + + + + + + + + +
+
Included in:
+
Barplot
+
+ + + +
+
Defined in:
+
src/lib/unicode_plot/value_transformer.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
PREDEFINED_TRANSFORM_FUNCTIONS = + +
+
{
+  log: Math.method(:log),
+  ln: Math.method(:log),
+  log10: Math.method(:log10),
+  lg: Math.method(:log10),
+  log2: Math.method(:log2),
+  lb: Math.method(:log2),
+}.freeze
+ +
+ + + + + + + + + +

+ Class Method Summary + collapse +

+ + + +

+ Instance Method Summary + collapse +

+ + + + + + +
+

Class Method Details

+ + +
+

+ + .transform_name(func, basename = "") ⇒ Object + + + + + +

+ + + + +
+
+
+
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+
+
# File 'src/lib/unicode_plot/value_transformer.rb', line 30
+
+module_function def transform_name(func, basename="")
+  return basename unless func
+  case func
+  when String, Symbol
+    name = func
+  when ->(f) { f.respond_to?(:name) }
+    name = func.name
+  else
+    name = "custom"
+  end
+  "#{basename} [#{name}]"
+end
+
+
+ +
+ +
+

Instance Method Details

+ + +
+

+ + #transform_values(func, values) ⇒ Object + + + + + +

+ + + + +
+
+
+
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+
+
# File 'src/lib/unicode_plot/value_transformer.rb', line 12
+
+def transform_values(func, values)
+  return values unless func
+
+  unless func.respond_to?(:call)
+    func = PREDEFINED_TRANSFORM_FUNCTIONS[func]
+    unless func.respond_to?(:call)
+      raise ArgumentError, "func must be callable"
+    end
+  end
+
+  case values
+  when Numeric
+    func.(values)
+  else
+    values.map(&func)
+  end
+end
+
+
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/UnicodePlot/Version.html b/0.0.4/UnicodePlot/Version.html new file mode 100644 index 0000000..edc2633 --- /dev/null +++ b/0.0.4/UnicodePlot/Version.html @@ -0,0 +1,121 @@ + + + + + + + Module: UnicodePlot::Version + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Module: UnicodePlot::Version + + + +

+
+ + + + + + + + + + + +
+
Defined in:
+
src/lib/unicode_plot/version.rb
+
+ +
+ + + +

+ Constant Summary + collapse +

+ +
+ +
STRING = + +
+
VERSION
+ +
+ + + + + + + + + + +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/_index.html b/0.0.4/_index.html new file mode 100644 index 0000000..344ca93 --- /dev/null +++ b/0.0.4/_index.html @@ -0,0 +1,329 @@ + + + + + + + Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
+ + +

Documentation by YARD 0.9.26

+
+

Alphabetic Index

+ +

File Listing

+ + +
+

Namespace Listing A-Z

+ + + + + + + + +
+ + + + + + + + +
    +
  • C
  • +
      + +
    • + Canvas + + (UnicodePlot) + +
    • + +
    +
+ + + + + +
    +
  • G
  • +
      + +
    • + GridPlot + + (UnicodePlot) + +
    • + +
    +
+ + + + + +
    +
  • P
  • +
      + +
    • + Plot + + (UnicodePlot) + +
    • + +
    +
+ + +
+ + +
    +
  • R
  • +
      + +
    • + Renderer + + (UnicodePlot) + +
    • + +
    +
+ + + + + + + + + + +
+ +
+ +
+ + + +
+ + \ No newline at end of file diff --git a/0.0.4/class_list.html b/0.0.4/class_list.html new file mode 100644 index 0000000..24da60d --- /dev/null +++ b/0.0.4/class_list.html @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + Class List + + + +
+
+

Class List

+ + + +
+ + +
+ + diff --git a/0.0.4/css/common.css b/0.0.4/css/common.css new file mode 100644 index 0000000..cf25c45 --- /dev/null +++ b/0.0.4/css/common.css @@ -0,0 +1 @@ +/* Override this file with custom rules */ \ No newline at end of file diff --git a/0.0.4/css/full_list.css b/0.0.4/css/full_list.css new file mode 100644 index 0000000..fa35982 --- /dev/null +++ b/0.0.4/css/full_list.css @@ -0,0 +1,58 @@ +body { + margin: 0; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + height: 101%; + overflow-x: hidden; + background: #fafafa; +} + +h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; } +.clear { clear: both; } +.fixed_header { position: fixed; background: #fff; width: 100%; padding-bottom: 10px; margin-top: 0; top: 0; z-index: 9999; height: 70px; } +#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; } +#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; } +#full_list { padding: 0; list-style: none; margin-left: 0; margin-top: 80px; font-size: 1.1em; } +#full_list ul { padding: 0; } +#full_list li { padding: 0; margin: 0; list-style: none; } +#full_list li .item { padding: 5px 5px 5px 12px; } +#noresults { padding: 7px 12px; background: #fff; } +#content.insearch #noresults { margin-left: 7px; } +li.collapsed ul { display: none; } +li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; } +li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; } +li { color: #888; cursor: pointer; } +li.deprecated { text-decoration: line-through; font-style: italic; } +li.odd { background: #f0f0f0; } +li.even { background: #fafafa; } +.item:hover { background: #ddd; } +li small:before { content: "("; } +li small:after { content: ")"; } +li small.search_info { display: none; } +a, a:visited { text-decoration: none; color: #05a; } +li.clicked > .item { background: #05a; color: #ccc; } +li.clicked > .item a, li.clicked > .item a:visited { color: #eee; } +li.clicked > .item a.toggle { opacity: 0.5; background-position: bottom right; } +li.collapsed.clicked a.toggle { background-position: top right; } +#search input { border: 1px solid #bbb; border-radius: 3px; } +#full_list_nav { margin-left: 10px; font-size: 0.9em; display: block; color: #aaa; } +#full_list_nav a, #nav a:visited { color: #358; } +#full_list_nav a:hover { background: transparent; color: #5af; } +#full_list_nav span:after { content: ' | '; } +#full_list_nav span:last-child:after { content: ''; } + +#content h1 { margin-top: 0; } +li { white-space: nowrap; cursor: normal; } +li small { display: block; font-size: 0.8em; } +li small:before { content: ""; } +li small:after { content: ""; } +li small.search_info { display: none; } +#search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; } +#content.insearch #search { background-position: center right; } +#search input { width: 110px; } + +#full_list.insearch ul { display: block; } +#full_list.insearch .item { display: none; } +#full_list.insearch .found { display: block; padding-left: 11px !important; } +#full_list.insearch li a.toggle { display: none; } +#full_list.insearch li small.search_info { display: block; } diff --git a/0.0.4/css/style.css b/0.0.4/css/style.css new file mode 100644 index 0000000..eb0dbc8 --- /dev/null +++ b/0.0.4/css/style.css @@ -0,0 +1,497 @@ +html { + width: 100%; + height: 100%; +} +body { + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + width: 100%; + margin: 0; + padding: 0; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; +} + +#nav { + position: relative; + width: 100%; + height: 100%; + border: 0; + border-right: 1px dotted #eee; + overflow: auto; +} +.nav_wrap { + margin: 0; + padding: 0; + width: 20%; + height: 100%; + position: relative; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; + flex-shrink: 0; + -webkit-flex-shrink: 0; + -ms-flex: 1 0; +} +#resizer { + position: absolute; + right: -5px; + top: 0; + width: 10px; + height: 100%; + cursor: col-resize; + z-index: 9999; +} +#main { + flex: 5 1; + -webkit-flex: 5 1; + -ms-flex: 5 1; + outline: none; + position: relative; + background: #fff; + padding: 1.2em; + padding-top: 0.2em; + box-sizing: border-box; +} + +@media (max-width: 920px) { + .nav_wrap { width: 100%; top: 0; right: 0; overflow: visible; position: absolute; } + #resizer { display: none; } + #nav { + z-index: 9999; + background: #fff; + display: none; + position: absolute; + top: 40px; + right: 12px; + width: 500px; + max-width: 80%; + height: 80%; + overflow-y: scroll; + border: 1px solid #999; + border-collapse: collapse; + box-shadow: -7px 5px 25px #aaa; + border-radius: 2px; + } +} + +@media (min-width: 920px) { + body { height: 100%; overflow: hidden; } + #main { height: 100%; overflow: auto; } + #search { display: none; } +} + +#main img { max-width: 100%; } +h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; } +h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; } +h1.title { margin-bottom: 10px; } +h1.alphaindex { margin-top: 0; font-size: 22px; } +h2 { + padding: 0; + padding-bottom: 3px; + border-bottom: 1px #aaa solid; + font-size: 1.4em; + margin: 1.8em 0 0.5em; + position: relative; +} +h2 small { font-weight: normal; font-size: 0.7em; display: inline; position: absolute; right: 0; } +h2 small a { + display: block; + height: 20px; + border: 1px solid #aaa; + border-bottom: 0; + border-top-left-radius: 5px; + background: #f8f8f8; + position: relative; + padding: 2px 7px; +} +.clear { clear: both; } +.inline { display: inline; } +.inline p:first-child { display: inline; } +.docstring, .tags, #filecontents { font-size: 15px; line-height: 1.5145em; } +.docstring p > code, .docstring p > tt, .tags p > code, .tags p > tt { + color: #c7254e; background: #f9f2f4; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; } +.docstring h1 { font-size: 1.2em; } +.docstring h2 { font-size: 1.1em; } +.docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; } +.summary_desc .object_link a, .docstring .object_link a { + font-family: monospace; font-size: 1.05em; + color: #05a; background: #EDF4FA; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.rdoc-term { padding-right: 25px; font-weight: bold; } +.rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; } +.summary_desc pre.code .object_link a, .docstring pre.code .object_link a { + padding: 0px; background: inherit; color: inherit; border-radius: inherit; +} + +/* style for */ +#filecontents table, .docstring table { border-collapse: collapse; } +#filecontents table th, #filecontents table td, +.docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; } +#filecontents table tr:nth-child(odd), +.docstring table tr:nth-child(odd) { background: #eee; } +#filecontents table tr:nth-child(even), +.docstring table tr:nth-child(even) { background: #fff; } +#filecontents table th, .docstring table th { background: #fff; } + +/* style for
    */ +#filecontents li > p, .docstring li > p { margin: 0px; } +#filecontents ul, .docstring ul { padding-left: 20px; } +/* style for
    */ +#filecontents dl, .docstring dl { border: 1px solid #ccc; } +#filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; } +#filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; } +#filecontents dd > p, .docstring dd > p { margin: 0px; } + +.note { + color: #222; + margin: 20px 0; + padding: 10px; + border: 1px solid #eee; + border-radius: 3px; + display: block; +} +.docstring .note { + border-left-color: #ccc; + border-left-width: 5px; +} +.note.todo { background: #ffffc5; border-color: #ececaa; } +.note.returns_void { background: #efefef; } +.note.deprecated { background: #ffe5e5; border-color: #e9dada; } +.note.title.deprecated { background: #ffe5e5; border-color: #e9dada; } +.note.private { background: #ffffc5; border-color: #ececaa; } +.note.title { padding: 3px 6px; font-size: 0.9em; font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; display: inline; } +.summary_signature + .note.title { margin-left: 7px; } +h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; } +.note.title { background: #efefef; } +.note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; } +.note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; } +.note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; } +.note.title.private { background: #d5d5d5; border-color: #c5c5c5; } +.note.title.not_defined_here { background: transparent; border: none; font-style: italic; } +.discussion .note { margin-top: 6px; } +.discussion .note:first-child { margin-top: 0; } + +h3.inherited { + font-style: italic; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-weight: normal; + padding: 0; + margin: 0; + margin-top: 12px; + margin-bottom: 3px; + font-size: 13px; +} +p.inherited { + padding: 0; + margin: 0; + margin-left: 25px; +} + +.box_info dl { + margin: 0; + border: 0; + width: 100%; + font-size: 1em; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; +} +.box_info dl dt { + flex-shrink: 0; + -webkit-flex-shrink: 1; + -ms-flex-shrink: 1; + width: 100px; + text-align: right; + font-weight: bold; + border: 1px solid #aaa; + border-width: 1px 0px 0px 1px; + padding: 6px 0; + padding-right: 10px; +} +.box_info dl dd { + flex-grow: 1; + -webkit-flex-grow: 1; + -ms-flex: 1; + max-width: 420px; + padding: 6px 0; + padding-right: 20px; + border: 1px solid #aaa; + border-width: 1px 1px 0 0; + overflow: hidden; + position: relative; +} +.box_info dl:last-child > * { + border-bottom: 1px solid #aaa; +} +.box_info dl:nth-child(odd) > * { background: #eee; } +.box_info dl:nth-child(even) > * { background: #fff; } +.box_info dl > * { margin: 0; } + +ul.toplevel { list-style: none; padding-left: 0; font-size: 1.1em; } +.index_inline_list { padding-left: 0; font-size: 1.1em; } + +.index_inline_list li { + list-style: none; + display: inline-block; + padding: 0 12px; + line-height: 30px; + margin-bottom: 5px; +} + +dl.constants { margin-left: 10px; } +dl.constants dt { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; } +dl.constants.compact dt { display: inline-block; font-weight: normal } +dl.constants dd { width: 75%; white-space: pre; font-family: monospace; margin-bottom: 18px; } +dl.constants .docstring .note:first-child { margin-top: 5px; } + +.summary_desc { + margin-left: 32px; + display: block; + font-family: sans-serif; + font-size: 1.1em; + margin-top: 8px; + line-height: 1.5145em; + margin-bottom: 0.8em; +} +.summary_desc tt { font-size: 0.9em; } +dl.constants .note { padding: 2px 6px; padding-right: 12px; margin-top: 6px; } +dl.constants .docstring { margin-left: 32px; font-size: 0.9em; font-weight: normal; } +dl.constants .tags { padding-left: 32px; font-size: 0.9em; line-height: 0.8em; } +dl.constants .discussion *:first-child { margin-top: 0; } +dl.constants .discussion *:last-child { margin-bottom: 0; } + +.method_details { border-top: 1px dotted #ccc; margin-top: 25px; padding-top: 0; } +.method_details.first { border: 0; margin-top: 5px; } +.method_details.first h3.signature { margin-top: 1em; } +p.signature, h3.signature { + font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace; + padding: 6px 10px; margin-top: 1em; + background: #E8F4FF; border: 1px solid #d8d8e5; border-radius: 5px; +} +p.signature tt, +h3.signature tt { font-family: Monaco, Consolas, Courier, monospace; } +p.signature .overload, +h3.signature .overload { display: block; } +p.signature .extras, +h3.signature .extras { font-weight: normal; font-family: sans-serif; color: #444; font-size: 1em; } +p.signature .not_defined_here, +h3.signature .not_defined_here, +p.signature .aliases, +h3.signature .aliases { display: block; font-weight: normal; font-size: 0.9em; font-family: sans-serif; margin-top: 0px; color: #555; } +p.signature .aliases .names, +h3.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace; font-weight: bold; color: #000; font-size: 1.2em; } + +.tags .tag_title { font-size: 1.05em; margin-bottom: 0; font-weight: bold; } +.tags .tag_title tt { color: initial; padding: initial; background: initial; } +.tags ul { margin-top: 5px; padding-left: 30px; list-style: square; } +.tags ul li { margin-bottom: 3px; } +.tags ul .name { font-family: monospace; font-weight: bold; } +.tags ul .note { padding: 3px 6px; } +.tags { margin-bottom: 12px; } + +.tags .examples .tag_title { margin-bottom: 10px; font-weight: bold; } +.tags .examples .inline p { padding: 0; margin: 0; font-weight: bold; font-size: 1em; } +.tags .examples .inline p:before { content: "▸"; font-size: 1em; margin-right: 5px; } + +.tags .overload .overload_item { list-style: none; margin-bottom: 25px; } +.tags .overload .overload_item .signature { + padding: 2px 8px; + background: #F1F8FF; border: 1px solid #d8d8e5; border-radius: 3px; +} +.tags .overload .signature { margin-left: -15px; font-family: monospace; display: block; font-size: 1.1em; } +.tags .overload .docstring { margin-top: 15px; } + +.defines { display: none; } + +#method_missing_details .notice.this { position: relative; top: -8px; color: #888; padding: 0; margin: 0; } + +.showSource { font-size: 0.9em; } +.showSource a, .showSource a:visited { text-decoration: none; color: #666; } + +#content a, #content a:visited { text-decoration: none; color: #05a; } +#content a:hover { background: #ffffa5; } + +ul.summary { + list-style: none; + font-family: monospace; + font-size: 1em; + line-height: 1.5em; + padding-left: 0px; +} +ul.summary a, ul.summary a:visited { + text-decoration: none; font-size: 1.1em; +} +ul.summary li { margin-bottom: 5px; } +.summary_signature { padding: 4px 8px; background: #f8f8f8; border: 1px solid #f0f0f0; border-radius: 5px; } +.summary_signature:hover { background: #CFEBFF; border-color: #A4CCDA; cursor: pointer; } +.summary_signature.deprecated { background: #ffe5e5; border-color: #e9dada; } +ul.summary.compact li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;} +ul.summary.compact .summary_signature { padding: 5px 7px; padding-right: 4px; } +#content .summary_signature:hover a, +#content .summary_signature:hover a:visited { + background: transparent; + color: #049; +} + +p.inherited a { font-family: monospace; font-size: 0.9em; } +p.inherited { word-spacing: 5px; font-size: 1.2em; } + +p.children { font-size: 1.2em; } +p.children a { font-size: 0.9em; } +p.children strong { font-size: 0.8em; } +p.children strong.modules { padding-left: 5px; } + +ul.fullTree { display: none; padding-left: 0; list-style: none; margin-left: 0; margin-bottom: 10px; } +ul.fullTree ul { margin-left: 0; padding-left: 0; list-style: none; } +ul.fullTree li { text-align: center; padding-top: 18px; padding-bottom: 12px; background: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAHtJREFUeNqMzrEJAkEURdGzuhgZbSoYWcAWoBVsB4JgZAGmphsZCZYzTQgWNCYrDN9RvMmHx+X916SUBFbo8CzD1idXrLErw1mQttgXtyrOcQ/Ny5p4Qh+2XqLYYazsPWNTiuMkRxa4vcV+evuNAUOLIx5+c2hyzv7hNQC67Q+/HHmlEwAAAABJRU5ErkJggg==) no-repeat top center; } +ul.fullTree li:first-child { padding-top: 0; background: transparent; } +ul.fullTree li:last-child { padding-bottom: 0; } +.showAll ul.fullTree { display: block; } +.showAll .inheritName { display: none; } + +#search { position: absolute; right: 12px; top: 0px; z-index: 9000; } +#search a { + display: block; float: left; + padding: 4px 8px; text-decoration: none; color: #05a; fill: #05a; + border: 1px solid #d8d8e5; + border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; + background: #F1F8FF; + box-shadow: -1px 1px 3px #ddd; +} +#search a:hover { background: #f5faff; color: #06b; fill: #06b; } +#search a.active { + background: #568; padding-bottom: 20px; color: #fff; fill: #fff; + border: 1px solid #457; + border-top-left-radius: 5px; border-top-right-radius: 5px; +} +#search a.inactive { color: #999; fill: #999; } +.inheritanceTree, .toggleDefines { + float: right; + border-left: 1px solid #aaa; + position: absolute; top: 0; right: 0; + height: 100%; + background: #f6f6f6; + padding: 5px; + min-width: 55px; + text-align: center; +} + +#menu { font-size: 1.3em; color: #bbb; } +#menu .title, #menu a { font-size: 0.7em; } +#menu .title a { font-size: 1em; } +#menu .title { color: #555; } +#menu a, #menu a:visited { color: #333; text-decoration: none; border-bottom: 1px dotted #bbd; } +#menu a:hover { color: #05a; } + +#footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; } +#footer a, #footer a:visited { color: #444; text-decoration: none; border-bottom: 1px dotted #bbd; } +#footer a:hover { color: #05a; } + +#listing ul.alpha { font-size: 1.1em; } +#listing ul.alpha { margin: 0; padding: 0; padding-bottom: 10px; list-style: none; } +#listing ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; } +#listing ul.alpha ul { margin: 0; padding-left: 15px; } +#listing ul small { color: #666; font-size: 0.7em; } + +li.r1 { background: #f0f0f0; } +li.r2 { background: #fafafa; } + +#content ul.summary li.deprecated .summary_signature a, +#content ul.summary li.deprecated .summary_signature a:visited { text-decoration: line-through; font-style: italic; } + +#toc { + position: relative; + float: right; + overflow-x: auto; + right: -3px; + margin-left: 20px; + margin-bottom: 20px; + padding: 20px; padding-right: 30px; + max-width: 300px; + z-index: 5000; + background: #fefefe; + border: 1px solid #ddd; + box-shadow: -2px 2px 6px #bbb; +} +#toc .title { margin: 0; } +#toc ol { padding-left: 1.8em; } +#toc li { font-size: 1.1em; line-height: 1.7em; } +#toc > ol > li { font-size: 1.1em; font-weight: bold; } +#toc ol > li > ol { font-size: 0.9em; } +#toc ol ol > li > ol { padding-left: 2.3em; } +#toc ol + li { margin-top: 0.3em; } +#toc.hidden { padding: 10px; background: #fefefe; box-shadow: none; } +#toc.hidden:hover { background: #fafafa; } +#filecontents h1 + #toc.nofloat { margin-top: 0; } +@media (max-width: 560px) { + #toc { + margin-left: 0; + margin-top: 16px; + float: none; + max-width: none; + } +} + +/* syntax highlighting */ +.source_code { display: none; padding: 3px 8px; border-left: 8px solid #ddd; margin-top: 5px; } +#filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; } +#filecontents pre.code, .docstring pre.code { display: block; } +.source_code .lines { padding-right: 12px; color: #555; text-align: right; } +#filecontents pre.code, .docstring pre.code, +.tags pre.example { + padding: 9px 14px; + margin-top: 4px; + border: 1px solid #e1e1e8; + background: #f7f7f9; + border-radius: 4px; + font-size: 1em; + overflow-x: auto; + line-height: 1.2em; +} +pre.code { color: #000; tab-size: 2; } +pre.code .info.file { color: #555; } +pre.code .val { color: #036A07; } +pre.code .tstring_content, +pre.code .heredoc_beg, pre.code .heredoc_end, +pre.code .qwords_beg, pre.code .qwords_end, pre.code .qwords_sep, +pre.code .words_beg, pre.code .words_end, pre.code .words_sep, +pre.code .qsymbols_beg, pre.code .qsymbols_end, pre.code .qsymbols_sep, +pre.code .symbols_beg, pre.code .symbols_end, pre.code .symbols_sep, +pre.code .tstring, pre.code .dstring { color: #036A07; } +pre.code .fid, pre.code .rubyid_new, pre.code .rubyid_to_s, +pre.code .rubyid_to_sym, pre.code .rubyid_to_f, +pre.code .dot + pre.code .id, +pre.code .rubyid_to_i pre.code .rubyid_each { color: #0085FF; } +pre.code .comment { color: #0066FF; } +pre.code .const, pre.code .constant { color: #585CF6; } +pre.code .label, +pre.code .symbol { color: #C5060B; } +pre.code .kw, +pre.code .rubyid_require, +pre.code .rubyid_extend, +pre.code .rubyid_include { color: #0000FF; } +pre.code .ivar { color: #318495; } +pre.code .gvar, +pre.code .rubyid_backref, +pre.code .rubyid_nth_ref { color: #6D79DE; } +pre.code .regexp, .dregexp { color: #036A07; } +pre.code a { border-bottom: 1px dotted #bbf; } +/* inline code */ +*:not(pre) > code { + padding: 1px 3px 1px 3px; + border: 1px solid #E1E1E8; + background: #F7F7F9; + border-radius: 4px; +} + +/* Color fix for links */ +#content .summary_desc pre.code .id > .object_link a, /* identifier */ +#content .docstring pre.code .id > .object_link a { color: #0085FF; } +#content .summary_desc pre.code .const > .object_link a, /* constant */ +#content .docstring pre.code .const > .object_link a { color: #585CF6; } diff --git a/0.0.4/file.CHANGES.html b/0.0.4/file.CHANGES.html new file mode 100644 index 0000000..5d53e2a --- /dev/null +++ b/0.0.4/file.CHANGES.html @@ -0,0 +1,98 @@ + + + + + + + File: CHANGES + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    0.0.4

    + +
      +
    • Fix error by requiring stringio [#22]
    • +
    • Use enumerable-statistics >= 2.0.1 to avoid a bug of histogram [#28]
    • +
    + +

    0.0.3

    + +
      +
    • Add histogram support
    • +
    • Add barplot! method
    • +
    • Add scatterplot support
    • +
    • Add densityplot support
    • +
    + +

    0.0.2

    + +
      +
    • Add boxplot support
    • +
    + +

    0.0.1

    + +
      +
    • Add barplot support
    • +
    • Add lineplot support
    • +
    +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.4/file.LICENSE.html b/0.0.4/file.LICENSE.html new file mode 100644 index 0000000..f8083a0 --- /dev/null +++ b/0.0.4/file.LICENSE.html @@ -0,0 +1,70 @@ + + + + + + + File: LICENSE + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +
    The MIT License (MIT)
    Copyright © 2019 Kenta Murata

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the “Software”), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in
    all copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    THE SOFTWARE.
    + + + +
    + + \ No newline at end of file diff --git a/0.0.4/file.README.html b/0.0.4/file.README.html new file mode 100644 index 0000000..af4cdf0 --- /dev/null +++ b/0.0.4/file.README.html @@ -0,0 +1,160 @@ + + + + + + + File: README + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    UnicodePlot - Plot your data by Unicode characters

    + +

    UnicodePlot provides the feature to make charts with Unicode characters.

    + +

    Install

    + +
    $ gem install unicode_plot
    +
    + +

    Usage

    + +
    require 'unicode_plot'
    +
    +x = 0.step(3*Math::PI, by: 3*Math::PI / 30)
    +y_sin = x.map {|xi| Math.sin(xi) }
    +y_cos = x.map {|xi| Math.cos(xi) }
    +plot = UnicodePlot.lineplot(x, y_sin, name: "sin(x)", width: 40, height: 10)
    +UnicodePlot.lineplot!(plot, x, y_cos, name: "cos(x)")
    +plot.render($stdout)
    +puts
    +
    + +

    You can get the results below by running the above script:

    + +

    + +

    Supported charts

    + +

    barplot

    + +
    plot = UnicodePlot.barplot(data: {'foo': 20, 'bar': 50}, title: "Bar")
    +plot.render($stdout)
    +
    + +

    + +

    boxplot

    + +
    plot = UnicodePlot.boxplot(data: {foo: [1, 3, 5], bar: [3, 5, 7]}, title: "Box")
    +plot.render($stdout)
    +
    + +

    + +

    densityplot

    + +
    x = Array.new(500) { 20*rand - 10 } + Array.new(500) { 6*rand - 3 }
    +y = Array.new(1000) { 30*rand - 10 }
    +plot = UnicodePlot.densityplot(x, y, title: "Density")
    +plot.render($stdout)
    +
    + +

    + +

    histogram

    + +
    x = Array.new(100) { rand(10) } + Array.new(100) { rand(30) + 10 }
    +plot = UnicodePlot.histogram(x, title: "Histogram")
    +plot.render($stdout)
    +
    + +

    + +

    lineplot

    + +

    See Usage section above.

    + +

    scatterplot

    + +
    x = Array.new(50) { rand(20) - 10 }
    +y = x.map {|xx| xx*rand(30) - 10 }
    +plot = UnicodePlot.scatterplot(x, y, title: "Scatter")
    +plot.render($stdout)
    +
    + +

    + +

    Acknowledgement

    + +

    This library is strongly inspired by UnicodePlot.jl.

    + +

    License

    + +

    MIT License

    + +

    Author

    + + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.4/file_list.html b/0.0.4/file_list.html new file mode 100644 index 0000000..8bdafe2 --- /dev/null +++ b/0.0.4/file_list.html @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + File List + + + +
    +
    +

    File List

    + + + +
    + + +
    + + diff --git a/0.0.4/frames.html b/0.0.4/frames.html new file mode 100644 index 0000000..1310783 --- /dev/null +++ b/0.0.4/frames.html @@ -0,0 +1,17 @@ + + + + + Documentation by YARD 0.9.26 + + + + diff --git a/img/barplot.png b/0.0.4/img/barplot.png similarity index 100% rename from img/barplot.png rename to 0.0.4/img/barplot.png diff --git a/img/boxplot.png b/0.0.4/img/boxplot.png similarity index 100% rename from img/boxplot.png rename to 0.0.4/img/boxplot.png diff --git a/img/densityplot.png b/0.0.4/img/densityplot.png similarity index 100% rename from img/densityplot.png rename to 0.0.4/img/densityplot.png diff --git a/img/histogram.png b/0.0.4/img/histogram.png similarity index 100% rename from img/histogram.png rename to 0.0.4/img/histogram.png diff --git a/0.0.4/img/lineplot.png b/0.0.4/img/lineplot.png new file mode 100644 index 0000000..1b7b9ba Binary files /dev/null and b/0.0.4/img/lineplot.png differ diff --git a/img/scatterplot.png b/0.0.4/img/scatterplot.png similarity index 100% rename from img/scatterplot.png rename to 0.0.4/img/scatterplot.png diff --git a/0.0.4/index.html b/0.0.4/index.html new file mode 100644 index 0000000..551b2e3 --- /dev/null +++ b/0.0.4/index.html @@ -0,0 +1,160 @@ + + + + + + + File: README + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    UnicodePlot - Plot your data by Unicode characters

    + +

    UnicodePlot provides the feature to make charts with Unicode characters.

    + +

    Install

    + +
    $ gem install unicode_plot
    +
    + +

    Usage

    + +
    require 'unicode_plot'
    +
    +x = 0.step(3*Math::PI, by: 3*Math::PI / 30)
    +y_sin = x.map {|xi| Math.sin(xi) }
    +y_cos = x.map {|xi| Math.cos(xi) }
    +plot = UnicodePlot.lineplot(x, y_sin, name: "sin(x)", width: 40, height: 10)
    +UnicodePlot.lineplot!(plot, x, y_cos, name: "cos(x)")
    +plot.render($stdout)
    +puts
    +
    + +

    You can get the results below by running the above script:

    + +

    + +

    Supported charts

    + +

    barplot

    + +
    plot = UnicodePlot.barplot(data: {'foo': 20, 'bar': 50}, title: "Bar")
    +plot.render($stdout)
    +
    + +

    + +

    boxplot

    + +
    plot = UnicodePlot.boxplot(data: {foo: [1, 3, 5], bar: [3, 5, 7]}, title: "Box")
    +plot.render($stdout)
    +
    + +

    + +

    densityplot

    + +
    x = Array.new(500) { 20*rand - 10 } + Array.new(500) { 6*rand - 3 }
    +y = Array.new(1000) { 30*rand - 10 }
    +plot = UnicodePlot.densityplot(x, y, title: "Density")
    +plot.render($stdout)
    +
    + +

    + +

    histogram

    + +
    x = Array.new(100) { rand(10) } + Array.new(100) { rand(30) + 10 }
    +plot = UnicodePlot.histogram(x, title: "Histogram")
    +plot.render($stdout)
    +
    + +

    + +

    lineplot

    + +

    See Usage section above.

    + +

    scatterplot

    + +
    x = Array.new(50) { rand(20) - 10 }
    +y = x.map {|xx| xx*rand(30) - 10 }
    +plot = UnicodePlot.scatterplot(x, y, title: "Scatter")
    +plot.render($stdout)
    +
    + +

    + +

    Acknowledgement

    + +

    This library is strongly inspired by UnicodePlot.jl.

    + +

    License

    + +

    MIT License

    + +

    Author

    + + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.4/js/app.js b/0.0.4/js/app.js new file mode 100644 index 0000000..8d067fe --- /dev/null +++ b/0.0.4/js/app.js @@ -0,0 +1,314 @@ +(function() { + +var localStorage = {}, sessionStorage = {}; +try { localStorage = window.localStorage; } catch (e) { } +try { sessionStorage = window.sessionStorage; } catch (e) { } + +function createSourceLinks() { + $('.method_details_list .source_code'). + before("[View source]"); + $('.toggleSource').toggle(function() { + $(this).parent().nextAll('.source_code').slideDown(100); + $(this).text("Hide source"); + }, + function() { + $(this).parent().nextAll('.source_code').slideUp(100); + $(this).text("View source"); + }); +} + +function createDefineLinks() { + var tHeight = 0; + $('.defines').after(" more..."); + $('.toggleDefines').toggle(function() { + tHeight = $(this).parent().prev().height(); + $(this).prev().css('display', 'inline'); + $(this).parent().prev().height($(this).parent().height()); + $(this).text("(less)"); + }, + function() { + $(this).prev().hide(); + $(this).parent().prev().height(tHeight); + $(this).text("more..."); + }); +} + +function createFullTreeLinks() { + var tHeight = 0; + $('.inheritanceTree').toggle(function() { + tHeight = $(this).parent().prev().height(); + $(this).parent().toggleClass('showAll'); + $(this).text("(hide)"); + $(this).parent().prev().height($(this).parent().height()); + }, + function() { + $(this).parent().toggleClass('showAll'); + $(this).parent().prev().height(tHeight); + $(this).text("show all"); + }); +} + +function searchFrameButtons() { + $('.full_list_link').click(function() { + toggleSearchFrame(this, $(this).attr('href')); + return false; + }); + window.addEventListener('message', function(e) { + if (e.data === 'navEscape') { + $('#nav').slideUp(100); + $('#search a').removeClass('active inactive'); + $(window).focus(); + } + }); + + $(window).resize(function() { + if ($('#search:visible').length === 0) { + $('#nav').removeAttr('style'); + $('#search a').removeClass('active inactive'); + $(window).focus(); + } + }); +} + +function toggleSearchFrame(id, link) { + var frame = $('#nav'); + $('#search a').removeClass('active').addClass('inactive'); + if (frame.attr('src') === link && frame.css('display') !== "none") { + frame.slideUp(100); + $('#search a').removeClass('active inactive'); + } + else { + $(id).addClass('active').removeClass('inactive'); + if (frame.attr('src') !== link) frame.attr('src', link); + frame.slideDown(100); + } +} + +function linkSummaries() { + $('.summary_signature').click(function() { + document.location = $(this).find('a').attr('href'); + }); +} + +function summaryToggle() { + $('.summary_toggle').click(function(e) { + e.preventDefault(); + localStorage.summaryCollapsed = $(this).text(); + $('.summary_toggle').each(function() { + $(this).text($(this).text() == "collapse" ? "expand" : "collapse"); + var next = $(this).parent().parent().nextAll('ul.summary').first(); + if (next.hasClass('compact')) { + next.toggle(); + next.nextAll('ul.summary').first().toggle(); + } + else if (next.hasClass('summary')) { + var list = $('
      '); + list.html(next.html()); + list.find('.summary_desc, .note').remove(); + list.find('a').each(function() { + $(this).html($(this).find('strong').html()); + $(this).parent().html($(this)[0].outerHTML); + }); + next.before(list); + next.toggle(); + } + }); + return false; + }); + if (localStorage.summaryCollapsed == "collapse") { + $('.summary_toggle').first().click(); + } else { localStorage.summaryCollapsed = "expand"; } +} + +function constantSummaryToggle() { + $('.constants_summary_toggle').click(function(e) { + e.preventDefault(); + localStorage.summaryCollapsed = $(this).text(); + $('.constants_summary_toggle').each(function() { + $(this).text($(this).text() == "collapse" ? "expand" : "collapse"); + var next = $(this).parent().parent().nextAll('dl.constants').first(); + if (next.hasClass('compact')) { + next.toggle(); + next.nextAll('dl.constants').first().toggle(); + } + else if (next.hasClass('constants')) { + var list = $('
      '); + list.html(next.html()); + list.find('dt').each(function() { + $(this).addClass('summary_signature'); + $(this).text( $(this).text().split('=')[0]); + if ($(this).has(".deprecated").length) { + $(this).addClass('deprecated'); + }; + }); + // Add the value of the constant as "Tooltip" to the summary object + list.find('pre.code').each(function() { + console.log($(this).parent()); + var dt_element = $(this).parent().prev(); + var tooltip = $(this).text(); + if (dt_element.hasClass("deprecated")) { + tooltip = 'Deprecated. ' + tooltip; + }; + dt_element.attr('title', tooltip); + }); + list.find('.docstring, .tags, dd').remove(); + next.before(list); + next.toggle(); + } + }); + return false; + }); + if (localStorage.summaryCollapsed == "collapse") { + $('.constants_summary_toggle').first().click(); + } else { localStorage.summaryCollapsed = "expand"; } +} + +function generateTOC() { + if ($('#filecontents').length === 0) return; + var _toc = $('
        '); + var show = false; + var toc = _toc; + var counter = 0; + var tags = ['h2', 'h3', 'h4', 'h5', 'h6']; + var i; + var curli; + if ($('#filecontents h1').length > 1) tags.unshift('h1'); + for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; } + var lastTag = parseInt(tags[0][1], 10); + $(tags.join(', ')).each(function() { + if ($(this).parents('.method_details .docstring').length != 0) return; + if (this.id == "filecontents") return; + show = true; + var thisTag = parseInt(this.tagName[1], 10); + if (this.id.length === 0) { + var proposedId = $(this).attr('toc-id'); + if (typeof(proposedId) != "undefined") this.id = proposedId; + else { + var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_'); + if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; } + this.id = proposedId; + } + } + if (thisTag > lastTag) { + for (i = 0; i < thisTag - lastTag; i++) { + if ( typeof(curli) == "undefined" ) { + curli = $('
      1. '); + toc.append(curli); + } + toc = $('
          '); + curli.append(toc); + curli = undefined; + } + } + if (thisTag < lastTag) { + for (i = 0; i < lastTag - thisTag; i++) { + toc = toc.parent(); + toc = toc.parent(); + } + } + var title = $(this).attr('toc-title'); + if (typeof(title) == "undefined") title = $(this).text(); + curli =$('
        1. ' + title + '
        2. '); + toc.append(curli); + lastTag = thisTag; + }); + if (!show) return; + html = ''; + $('#content').prepend(html); + $('#toc').append(_toc); + $('#toc .hide_toc').toggle(function() { + $('#toc .top').slideUp('fast'); + $('#toc').toggleClass('hidden'); + $('#toc .title small').toggle(); + }, function() { + $('#toc .top').slideDown('fast'); + $('#toc').toggleClass('hidden'); + $('#toc .title small').toggle(); + }); +} + +function navResizeFn(e) { + if (e.which !== 1) { + navResizeFnStop(); + return; + } + + sessionStorage.navWidth = e.pageX.toString(); + $('.nav_wrap').css('width', e.pageX); + $('.nav_wrap').css('-ms-flex', 'inherit'); +} + +function navResizeFnStop() { + $(window).unbind('mousemove', navResizeFn); + window.removeEventListener('message', navMessageFn, false); +} + +function navMessageFn(e) { + if (e.data.action === 'mousemove') navResizeFn(e.data.event); + if (e.data.action === 'mouseup') navResizeFnStop(); +} + +function navResizer() { + $('#resizer').mousedown(function(e) { + e.preventDefault(); + $(window).mousemove(navResizeFn); + window.addEventListener('message', navMessageFn, false); + }); + $(window).mouseup(navResizeFnStop); + + if (sessionStorage.navWidth) { + navResizeFn({which: 1, pageX: parseInt(sessionStorage.navWidth, 10)}); + } +} + +function navExpander() { + var done = false, timer = setTimeout(postMessage, 500); + function postMessage() { + if (done) return; + clearTimeout(timer); + var opts = { action: 'expand', path: pathId }; + document.getElementById('nav').contentWindow.postMessage(opts, '*'); + done = true; + } + + window.addEventListener('message', function(event) { + if (event.data === 'navReady') postMessage(); + return false; + }, false); +} + +function mainFocus() { + var hash = window.location.hash; + if (hash !== '' && $(hash)[0]) { + $(hash)[0].scrollIntoView(); + } + + setTimeout(function() { $('#main').focus(); }, 10); +} + +function navigationChange() { + // This works around the broken anchor navigation with the YARD template. + window.onpopstate = function() { + var hash = window.location.hash; + if (hash !== '' && $(hash)[0]) { + $(hash)[0].scrollIntoView(); + } + }; +} + +$(document).ready(function() { + navResizer(); + navExpander(); + createSourceLinks(); + createDefineLinks(); + createFullTreeLinks(); + searchFrameButtons(); + linkSummaries(); + summaryToggle(); + constantSummaryToggle(); + generateTOC(); + mainFocus(); + navigationChange(); +}); + +})(); diff --git a/0.0.4/js/full_list.js b/0.0.4/js/full_list.js new file mode 100644 index 0000000..59069c5 --- /dev/null +++ b/0.0.4/js/full_list.js @@ -0,0 +1,216 @@ +(function() { + +var $clicked = $(null); +var searchTimeout = null; +var searchCache = []; +var caseSensitiveMatch = false; +var ignoreKeyCodeMin = 8; +var ignoreKeyCodeMax = 46; +var commandKey = 91; + +RegExp.escape = function(text) { + return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); +} + +function escapeShortcut() { + $(document).keydown(function(evt) { + if (evt.which == 27) { + window.parent.postMessage('navEscape', '*'); + } + }); +} + +function navResizer() { + $(window).mousemove(function(e) { + window.parent.postMessage({ + action: 'mousemove', event: {pageX: e.pageX, which: e.which} + }, '*'); + }).mouseup(function(e) { + window.parent.postMessage({action: 'mouseup'}, '*'); + }); + window.parent.postMessage("navReady", "*"); +} + +function clearSearchTimeout() { + clearTimeout(searchTimeout); + searchTimeout = null; +} + +function enableLinks() { + // load the target page in the parent window + $('#full_list li').on('click', function(evt) { + $('#full_list li').removeClass('clicked'); + $clicked = $(this); + $clicked.addClass('clicked'); + evt.stopPropagation(); + + if (evt.target.tagName === 'A') return true; + + var elem = $clicked.find('> .item .object_link a')[0]; + var e = evt.originalEvent; + var newEvent = new MouseEvent(evt.originalEvent.type); + newEvent.initMouseEvent(e.type, e.canBubble, e.cancelable, e.view, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget); + elem.dispatchEvent(newEvent); + evt.preventDefault(); + return false; + }); +} + +function enableToggles() { + // show/hide nested classes on toggle click + $('#full_list a.toggle').on('click', function(evt) { + evt.stopPropagation(); + evt.preventDefault(); + $(this).parent().parent().toggleClass('collapsed'); + highlight(); + }); +} + +function populateSearchCache() { + $('#full_list li .item').each(function() { + var $node = $(this); + var $link = $node.find('.object_link a'); + if ($link.length > 0) { + searchCache.push({ + node: $node, + link: $link, + name: $link.text(), + fullName: $link.attr('title').split(' ')[0] + }); + } + }); +} + +function enableSearch() { + $('#search input').keyup(function(event) { + if (ignoredKeyPress(event)) return; + if (this.value === "") { + clearSearch(); + } else { + performSearch(this.value); + } + }); + + $('#full_list').after(""); +} + +function ignoredKeyPress(event) { + if ( + (event.keyCode > ignoreKeyCodeMin && event.keyCode < ignoreKeyCodeMax) || + (event.keyCode == commandKey) + ) { + return true; + } else { + return false; + } +} + +function clearSearch() { + clearSearchTimeout(); + $('#full_list .found').removeClass('found').each(function() { + var $link = $(this).find('.object_link a'); + $link.text($link.text()); + }); + $('#full_list, #content').removeClass('insearch'); + $clicked.parents().removeClass('collapsed'); + highlight(); +} + +function performSearch(searchString) { + clearSearchTimeout(); + $('#full_list, #content').addClass('insearch'); + $('#noresults').text('').hide(); + partialSearch(searchString, 0); +} + +function partialSearch(searchString, offset) { + var lastRowClass = ''; + var i = null; + for (i = offset; i < Math.min(offset + 50, searchCache.length); i++) { + var item = searchCache[i]; + var searchName = (searchString.indexOf('::') != -1 ? item.fullName : item.name); + var matchString = buildMatchString(searchString); + var matchRegexp = new RegExp(matchString, caseSensitiveMatch ? "" : "i"); + if (searchName.match(matchRegexp) == null) { + item.node.removeClass('found'); + item.link.text(item.link.text()); + } + else { + item.node.addClass('found'); + item.node.removeClass(lastRowClass).addClass(lastRowClass == 'r1' ? 'r2' : 'r1'); + lastRowClass = item.node.hasClass('r1') ? 'r1' : 'r2'; + item.link.html(item.name.replace(matchRegexp, "$&")); + } + } + if(i == searchCache.length) { + searchDone(); + } else { + searchTimeout = setTimeout(function() { + partialSearch(searchString, i); + }, 0); + } +} + +function searchDone() { + searchTimeout = null; + highlight(); + if ($('#full_list li:visible').size() === 0) { + $('#noresults').text('No results were found.').hide().fadeIn(); + } else { + $('#noresults').text('').hide(); + } + $('#content').removeClass('insearch'); +} + +function buildMatchString(searchString, event) { + caseSensitiveMatch = searchString.match(/[A-Z]/) != null; + var regexSearchString = RegExp.escape(searchString); + if (caseSensitiveMatch) { + regexSearchString += "|" + + $.map(searchString.split(''), function(e) { return RegExp.escape(e); }). + join('.+?'); + } + return regexSearchString; +} + +function highlight() { + $('#full_list li:visible').each(function(n) { + $(this).removeClass('even odd').addClass(n % 2 == 0 ? 'odd' : 'even'); + }); +} + +/** + * Expands the tree to the target element and its immediate + * children. + */ +function expandTo(path) { + var $target = $(document.getElementById('object_' + path)); + $target.addClass('clicked'); + $target.removeClass('collapsed'); + $target.parentsUntil('#full_list', 'li').removeClass('collapsed'); + if($target[0]) { + window.scrollTo(window.scrollX, $target.offset().top - 250); + highlight(); + } +} + +function windowEvents(event) { + var msg = event.data; + if (msg.action === "expand") { + expandTo(msg.path); + } + return false; +} + +window.addEventListener("message", windowEvents, false); + +$(document).ready(function() { + escapeShortcut(); + navResizer(); + enableLinks(); + enableToggles(); + populateSearchCache(); + enableSearch(); +}); + +})(); diff --git a/0.0.4/js/jquery.js b/0.0.4/js/jquery.js new file mode 100644 index 0000000..198b3ff --- /dev/null +++ b/0.0.4/js/jquery.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
    "+""+"
    ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
    t
    ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
    ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/0.0.4/method_list.html b/0.0.4/method_list.html new file mode 100644 index 0000000..12d4c8c --- /dev/null +++ b/0.0.4/method_list.html @@ -0,0 +1,971 @@ + + + + + + + + + + + + + + + + + + Method List + + + +
    +
    +

    Method List

    + + + +
    + + +
    + + diff --git a/0.0.4/top-level-namespace.html b/0.0.4/top-level-namespace.html new file mode 100644 index 0000000..f2adda1 --- /dev/null +++ b/0.0.4/top-level-namespace.html @@ -0,0 +1,110 @@ + + + + + + + Top Level Namespace + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Top Level Namespace + + + +

    +
    + + + + + + + + + + + +
    + +

    Defined Under Namespace

    +

    + + + Modules: UnicodePlot + + + + +

    + + + + + + + + + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot.html b/0.0.5/UnicodePlot.html new file mode 100644 index 0000000..be2208c --- /dev/null +++ b/0.0.5/UnicodePlot.html @@ -0,0 +1,3334 @@ + + + + + + + Module: UnicodePlot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Module: UnicodePlot + + + +

    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/plot.rb,
    + src/lib/unicode_plot/utils.rb,
    src/lib/unicode_plot/canvas.rb,
    src/lib/unicode_plot/stairs.rb,
    src/lib/unicode_plot/barplot.rb,
    src/lib/unicode_plot/boxplot.rb,
    src/lib/unicode_plot/version.rb,
    src/lib/unicode_plot/lineplot.rb,
    src/lib/unicode_plot/renderer.rb,
    src/lib/unicode_plot/stemplot.rb,
    src/lib/unicode_plot/grid_plot.rb,
    src/lib/unicode_plot/histogram.rb,
    src/lib/unicode_plot/io_context.rb,
    src/lib/unicode_plot/densityplot.rb,
    src/lib/unicode_plot/scatterplot.rb,
    src/lib/unicode_plot/styled_printer.rb,
    src/lib/unicode_plot/canvas/dot_canvas.rb,
    src/lib/unicode_plot/value_transformer.rb,
    src/lib/unicode_plot/canvas/ascii_canvas.rb,
    src/lib/unicode_plot/canvas/block_canvas.rb,
    src/lib/unicode_plot/canvas/lookup_canvas.rb,
    src/lib/unicode_plot/canvas/braille_canvas.rb,
    src/lib/unicode_plot/canvas/density_canvas.rb
    +
    +
    + +
    + +

    Defined Under Namespace

    +

    + + + Modules: BorderMaps, BorderPrinter, StyledPrinter, Utils, ValueTransformer, Version + + + + Classes: AsciiCanvas, Barplot, BlockCanvas, Boxplot, BrailleCanvas, Canvas, DensityCanvas, DotCanvas, GridPlot, IOContext, Lineplot, LookupCanvas, NumericStemplot, Plot, Renderer, Scatterplot, Stemplot, StringStemplot + + +

    + + +

    + Constant Summary + collapse +

    + +
    + +
    VERSION = + +
    +
    "0.0.5"
    + +
    BORDER_MAP = + +
    +
    {
    +  solid:   BorderMaps::BORDER_SOLID,
    +  corners: BorderMaps::BORDER_CORNERS,
    +  barplot: BorderMaps::BORDER_BARPLOT,
    +}.freeze
    + +
    + + + + + + + + + +

    + Class Method Summary + collapse +

    + + + + + + +
    +

    Class Method Details

    + + +
    +

    + + + .barplot(text, heights, xscale: nil, title: nil, xlabel: nil, ylabel: nil, labels: true, border: :barplot, margin: Plot::DEFAULT_MARGIN, padding: Plot::DEFAULT_PADDING, color: Barplot::DEFAULT_COLOR, width: Plot::DEFAULT_WIDTH, symbol: Barplot::DEFAULT_SYMBOL) ⇒ Barplot + + .barplot(data, **kwargs) ⇒ Barplot + + + + + + +

    +
    + + + +
    +
    +
    + +

    Overloads:

    +
      + + +
    • + .barplot(text, heights, xscale: nil, title: nil, xlabel: nil, ylabel: nil, labels: true, border: :barplot, margin: Plot::DEFAULT_MARGIN, padding: Plot::DEFAULT_PADDING, color: Barplot::DEFAULT_COLOR, width: Plot::DEFAULT_WIDTH, symbol: Barplot::DEFAULT_SYMBOL) ⇒ Barplot +
      +
      +

      Draws a horizontal barplot.

      + + +
      +
      +
      + +
      +

      Examples:

      + + +

      Example usage of barplot on IRB:

      +

      + +
      
      +>> UnicodePlot.barplot(["Paris", "New York", "Moskau", "Madrid"],
      +                       [2.244, 8.406, 11.92, 3.165],
      +                       xlabel: "population [in mil]").render
      +            ┌                                        ┐
      +      Paris ┤■■■■■■ 2.244
      +   New York ┤■■■■■■■■■■■■■■■■■■■■■■■ 8.406
      +     Moskau ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 11.92
      +     Madrid ┤■■■■■■■■■ 3.165
      +            └                                        ┘
      +                       population [in mil]
      +=> nil
      + +
      +

      Parameters:

      +
        + +
      • + + text + + + (Array<String>) + + + + — +

        The lables / captions of the bars.

        +
        + +
      • + +
      • + + heights + + + (Array<Numeric>) + + + + — +

        The values / heights of the bars.

        +
        + +
      • + +
      • + + xscale + + + (nil, :log, :ln, :log10, :lg, :log2, :lb, callable) + + + (defaults to: nil) + + + — +

        A function name symbol or callable object to transform the bar
        +length before plotting. This effectively scales the x-axis
        +without influencing the captions of the individual bars.
        +e.g. use xscale: :log10 for logscale.

        +
        + +
      • + +
      • + + title + + + + + + (defaults to: nil) + + +
      • + +
      • + + xlabel + + + + + + (defaults to: nil) + + +
      • + +
      • + + ylabel + + + + + + (defaults to: nil) + + +
      • + +
      • + + labels + + + + + + (defaults to: true) + + +
      • + +
      • + + border + + + + + + (defaults to: :barplot) + + +
      • + +
      • + + margin + + + + + + (defaults to: Plot::DEFAULT_MARGIN) + + +
      • + +
      • + + padding + + + + + + (defaults to: Plot::DEFAULT_PADDING) + + +
      • + +
      • + + color + + + + + + (defaults to: Barplot::DEFAULT_COLOR) + + +
      • + +
      • + + width + + + + + + (defaults to: Plot::DEFAULT_WIDTH) + + +
      • + +
      • + + symbol + + + (String) + + + (defaults to: Barplot::DEFAULT_SYMBOL) + + + — +

        Specifies the character that should be used
        +to render the bars.

        +
        + +
      • + +
      + +

      Returns:

      +
        + +
      • + + + (Barplot) + + + + — +

        A plot object.

        +
        + +
      • + +
      + +

      See Also:

      + + +
      +
    • + + +
    • + .barplot(data, **kwargs) ⇒ Barplot +
      +
      +

      The different variation of barplot described above.

      + + +
      +
      +
      +

      Parameters:

      +
        + +
      • + + data + + + (Hash) + + + + — +

        A hash in which the keys will be used as text and
        +the values will be utilized as heights.

        +
        + +
      • + +
      • + + kwargs + + + + + + + — +

        Optional keyword arguments same as ones described above.

        +
        + +
      • + +
      + +

      Returns:

      +
        + +
      • + + + (Barplot) + + + + — +

        A plot object.

        +
        + +
      • + +
      + +
      +
    • + +
    + + +
    + + + + +
    +
    +
    +
    +123
    +124
    +125
    +126
    +127
    +128
    +129
    +130
    +131
    +132
    +133
    +134
    +135
    +136
    +137
    +138
    +139
    +140
    +141
    +142
    +143
    +144
    +145
    +146
    +147
    +148
    +149
    +150
    +151
    +152
    +153
    +154
    +155
    +156
    +157
    +158
    +159
    +160
    +
    +
    # File 'src/lib/unicode_plot/barplot.rb', line 123
    +
    +module_function def barplot(*args,
    +                            width: Plot::DEFAULT_WIDTH,
    +                            color: Barplot::DEFAULT_COLOR,
    +                            symbol: Barplot::DEFAULT_SYMBOL,
    +                            border: :barplot,
    +                            xscale: nil,
    +                            xlabel: nil,
    +                            data: nil,
    +                            **kw)
    +  case args.length
    +  when 0
    +    data = Hash(data)
    +    keys = data.keys.map(&:to_s)
    +    heights = data.values
    +  when 2
    +    keys = Array(args[0])
    +    heights = Array(args[1])
    +  else
    +    raise ArgumentError, "invalid arguments"
    +  end
    +
    +  unless keys.length == heights.length
    +    raise ArgumentError, "The given vectors must be of the same length"
    +  end
    +  unless heights.min >= 0
    +    raise ArgumentError, "All values have to be positive. Negative bars are not supported."
    +  end
    +
    +  xlabel ||= ValueTransformer.transform_name(xscale)
    +  plot = Barplot.new(heights, width, color, symbol, xscale,
    +                     border: border, xlabel: xlabel,
    +                     **kw)
    +  keys.each_with_index do |key, i|
    +    plot.annotate_row!(:l, i, key)
    +  end
    +
    +  plot
    +end
    +
    + + +
    +

    + + + .barplot!(plot, text, heights) ⇒ Barplot + + .barplot!(plot, data) ⇒ Barplot + + + + + + +

    +
    + + + +
    +
    +
    + +

    Overloads:

    +
      + + +
    • + .barplot!(plot, text, heights) ⇒ Barplot +
      +
      +

      Draw additional bars on the given existing plot.

      + + +
      +
      +
      +

      Parameters:

      +
        + +
      • + + plot + + + (Barplot) + + + + — +

        the existing plot.

        +
        + +
      • + +
      + +

      Returns:

      +
        + +
      • + + + (Barplot) + + + + — +

        A plot object.

        +
        + +
      • + +
      + +

      See Also:

      + + +
      +
    • + + +
    • + .barplot!(plot, data) ⇒ Barplot +
      +
      +

      The different variation of barplot! that takes the plotting data in a hash.

      + + +
      +
      +
      +

      Parameters:

      +
        + +
      • + + plot + + + (Barplot) + + + + — +

        the existing plot.

        +
        + +
      • + +
      + +

      Returns:

      +
        + +
      • + + + (Barplot) + + + + — +

        A plot object.

        +
        + +
      • + +
      + +
      +
    • + +
    + + +
    + + + + +
    +
    +
    +
    +177
    +178
    +179
    +180
    +181
    +182
    +183
    +184
    +185
    +186
    +187
    +188
    +189
    +190
    +191
    +192
    +193
    +194
    +195
    +196
    +197
    +198
    +199
    +200
    +201
    +202
    +203
    +204
    +205
    +
    +
    # File 'src/lib/unicode_plot/barplot.rb', line 177
    +
    +module_function def barplot!(plot,
    +                             *args,
    +                             data: nil)
    +  case args.length
    +  when 0
    +    data = Hash(data)
    +    keys = data.keys.map(&:to_s)
    +    heights = data.values
    +  when 2
    +    keys = Array(args[0])
    +    heights = Array(args[1])
    +  else
    +    raise ArgumentError, "invalid arguments"
    +  end
    +
    +  unless keys.length == heights.length
    +    raise ArgumentError, "The given vectors must be of the same length"
    +  end
    +  if keys.empty?
    +    raise ArgumentError, "Can't append empty array to barplot"
    +  end
    +
    +  cur_idx = plot.n_rows
    +  plot.add_row!(heights)
    +  keys.each_with_index do |key, i|
    +    plot.annotate_row!(:l, cur_idx + i, key)
    +  end
    +  plot
    +end
    +
    +
    + +
    +

    + + .border_typesObject + + + + + +

    + + + + +
    +
    +
    +
    +43
    +44
    +45
    +
    +
    # File 'src/lib/unicode_plot/renderer.rb', line 43
    +
    +def self.border_types
    +  BORDER_MAP.keys
    +end
    +
    +
    + +
    +

    + + .boxplot(*args, data: nil, border: :corners, color: Boxplot::DEFAULT_COLOR, width: Plot::DEFAULT_WIDTH, xlim: [0, 0], **kw) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +110
    +111
    +112
    +113
    +114
    +115
    +116
    +117
    +118
    +119
    +120
    +121
    +122
    +123
    +124
    +125
    +126
    +127
    +128
    +129
    +130
    +131
    +132
    +133
    +134
    +135
    +136
    +137
    +138
    +139
    +140
    +141
    +142
    +143
    +144
    +145
    +146
    +147
    +148
    +149
    +150
    +151
    +152
    +153
    +154
    +155
    +
    +
    # File 'src/lib/unicode_plot/boxplot.rb', line 94
    +
    +module_function def boxplot(*args,
    +                            data: nil,
    +                            border: :corners,
    +                            color: Boxplot::DEFAULT_COLOR,
    +                            width: Plot::DEFAULT_WIDTH,
    +                            xlim: [0, 0],
    +                            **kw)
    +  case args.length
    +  when 0
    +    data = Hash(data)
    +    text = data.keys
    +    data = data.values
    +  when 1
    +    data = args[0]
    +  when 2
    +    text = Array(args[0])
    +    data = args[1]
    +  else
    +    raise ArgumentError, "wrong number of arguments"
    +  end
    +
    +  case data[0]
    +  when Numeric
    +    data = [data]
    +  when Array
    +    # do nothing
    +  else
    +    data = data.to_ary
    +  end
    +  text ||= Array.new(data.length, "")
    +
    +  unless text.length == data.length
    +    raise ArgumentError, "wrong number of text"
    +  end
    +
    +  unless xlim.length == 2
    +    raise ArgumentError, "xlim must be a length 2 array"
    +  end
    +
    +  min_x, max_x = Utils.extend_limits(data.map(&:minmax).flatten, xlim)
    +  width = [width, Boxplot::MIN_WIDTH].max
    +
    +  plot = Boxplot.new(data[0], width, color, min_x, max_x,
    +                     border: border, **kw)
    +  (1 ... data.length).each do |i|
    +    plot.add_series!(data[i])
    +  end
    +
    +  mean_x = (min_x + max_x) / 2.0
    +  min_x_str  = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s
    +  mean_x_str = (Utils.roundable?(mean_x) ? mean_x.round : mean_x).to_s
    +  max_x_str  = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s
    +  plot.annotate!(:bl, min_x_str, color: :light_black)
    +  plot.annotate!(:b,  mean_x_str, color: :light_black)
    +  plot.annotate!(:br, max_x_str, color: :light_black)
    +
    +  text.each_with_index do |name, i|
    +    plot.annotate_row!(:l, i*3+1, name) if name.length > 0
    +  end
    +
    +  plot
    +end
    +
    +
    + +
    +

    + + .boxplot!(plot, *args, **kw) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +157
    +158
    +159
    +160
    +161
    +162
    +163
    +164
    +165
    +166
    +167
    +168
    +169
    +170
    +171
    +172
    +173
    +174
    +175
    +176
    +177
    +178
    +179
    +180
    +181
    +182
    +183
    +184
    +185
    +186
    +187
    +188
    +
    +
    # File 'src/lib/unicode_plot/boxplot.rb', line 157
    +
    +module_function def boxplot!(plot, *args, **kw)
    +  case args.length
    +  when 1
    +    data = args[0]
    +    name = kw[:name] || ""
    +  when 2
    +    name = args[0]
    +    data = args[1]
    +  else
    +    raise ArgumentError, "worng number of arguments"
    +  end
    +
    +  if data.empty?
    +    raise ArgumentError, "Can't append empty array to boxplot"
    +  end
    +
    +  plot.add_series!(data)
    +
    +  plot.annotate_row!(:l, (plot.n_data - 1)*3+1, name) if name && name != ""
    +
    +  min_x = plot.min_x
    +  max_x = plot.max_x
    +  mean_x = (min_x + max_x) / 2.0
    +  min_x_str  = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s
    +  mean_x_str = (Utils.roundable?(mean_x) ? mean_x.round : mean_x).to_s
    +  max_x_str  = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s
    +  plot.annotate!(:bl, min_x_str, color: :light_black)
    +  plot.annotate!(:b,  mean_x_str, color: :light_black)
    +  plot.annotate!(:br, max_x_str, color: :light_black)
    +
    +  plot
    +end
    +
    +
    + +
    +

    + + .canvas_typesObject + + + + + +

    + + + + +
    +
    +
    +
    +167
    +168
    +169
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 167
    +
    +def self.canvas_types
    +  Canvas::CANVAS_CLASS_MAP.keys
    +end
    +
    +
    + +
    +

    + + .compute_stair_lines(x, y, style: :post) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +
    +
    # File 'src/lib/unicode_plot/stairs.rb', line 63
    +
    +module_function def compute_stair_lines(x, y, style: :post)
    +  x_vex = Array.new(x.length * 2 - 1, 0)
    +  y_vex = Array.new(x.length * 2 - 1, 0)
    +  x_vex[0] = x[0]
    +  y_vex[0] = y[0]
    +  o = 0
    +  if style == :post
    +    (1 ... x.length).each do |i|
    +      x_vex[i + o] = x[i]
    +      x_vex[i + o + 1] = x[i]
    +      y_vex[i + o] = y[i-1]
    +      y_vex[i + o + 1] = y[i]
    +      o += 1
    +    end
    +  elsif style == :pre
    +    (1 ... x.length).each do |i|
    +      x_vex[i + o] = x[i-1]
    +      x_vex[i + o + 1] = x[i]
    +      y_vex[i + o] = y[i]
    +      y_vex[i + o + 1] = y[i]
    +      o += 1
    +    end
    +  end
    +  return [x_vex, y_vex]
    +end
    +
    +
    + +
    +

    + + .densityplot(x, y, color: :auto, grid: false, name: "", **kw) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +2
    +3
    +4
    +5
    +
    +
    # File 'src/lib/unicode_plot/densityplot.rb', line 2
    +
    +module_function def densityplot(x, y, color: :auto, grid: false, name: "", **kw)
    +  plot = GridPlot.new(x, y, :density, grid: grid, **kw)
    +  scatterplot!(plot, x, y, color: color, name: name)
    +end
    +
    +
    + +
    +

    + + .densityplot!(plot, x, y, **kw) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +7
    +8
    +9
    +
    +
    # File 'src/lib/unicode_plot/densityplot.rb', line 7
    +
    +module_function def densityplot!(plot, x, y, **kw)
    +  scatterplot!(plot, x, y, **kw)
    +end
    +
    +
    + +
    +

    + + .histogram(x, nbins: nil, closed: :left, symbol: "▇", **kw) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +
    +
    # File 'src/lib/unicode_plot/histogram.rb', line 4
    +
    +module_function def histogram(x,
    +                              nbins: nil,
    +                              closed: :left,
    +                              symbol: "",
    +                              **kw)
    +  hist = x.histogram(*[nbins].compact, closed: closed)
    +  edge, counts = hist.edge, hist.weights
    +  labels = []
    +  bin_width = edge[1] - edge[0]
    +  pad_left, pad_right = 0, 0
    +  (0 ... edge.length).each do |i|
    +    val1 = Utils.float_round_log10(edge[i], bin_width)
    +    val2 = Utils.float_round_log10(val1 + bin_width, bin_width)
    +    a1 = val1.to_s.split('.', 2).map(&:length)
    +    a2 = val2.to_s.split('.', 2).map(&:length)
    +    pad_left  = [pad_left,  a1[0], a2[0]].max
    +    pad_right = [pad_right, a1[1], a2[1]].max
    +  end
    +  l_str = hist.closed == :right ? "(" : "["
    +  r_str = hist.closed == :right ? "]" : ")"
    +  counts.each_with_index do |n, i|
    +    val1 = Utils.float_round_log10(edge[i], bin_width)
    +    val2 = Utils.float_round_log10(val1 + bin_width, bin_width)
    +    a1 = val1.to_s.split('.', 2).map(&:length)
    +    a2 = val2.to_s.split('.', 2).map(&:length)
    +    labels[i] = "\e[90m#{l_str}\e[0m" +
    +                (" " * (pad_left - a1[0])) +
    +                val1.to_s +
    +                (" " * (pad_right - a1[1])) +
    +                "\e[90m, \e[0m" +
    +                (" " * (pad_left - a2[0])) +
    +                val2.to_s +
    +                (" " * (pad_right - a2[1])) +
    +                "\e[90m#{r_str}\e[0m"
    +  end
    +  xscale = kw.delete(:xscale)
    +  xlabel = kw.delete(:xlabel) ||
    +           ValueTransformer.transform_name(xscale, "Frequency")
    +  barplot(labels, counts,
    +          symbol: symbol,
    +          xscale: xscale,
    +          xlabel: xlabel,
    +          **kw)
    +end
    +
    +
    + +
    +

    + + .lineplot([x], y, name: "", canvas: :braille, title: "", xlabel: "", ylabel: "", labels: true, border: :solid, margin: Plot::DEFAULT_MARGIN, padding: Plot::DEFAULT_PADDING, color: :auto, width: Plot::DEFAULT_WIDTH, height: GridPlot::DEFAULT_HEIGHT, xlim: [0, 0], ylim: [0, 0], canvas: :braille, grid: true) ⇒ Lineplot + + + + + +

    +
    + + + +
    +
    +
    + +
    +
    +

    Draws a path through the given points on a new canvas.

    + +

    The first (optional) array x should contain the horizontal positions for all the points along the path.
    +The second array y should then contain the corresponding vertical positions respectively.
    +This means that the two vectors must be of the same length and ordering.

    + + +
    +
    +
    +

    Parameters:

    +
      + +
    • + + x + + + (Array<Numeric>) + + + + — +

      Optional. The horizontal position for each point. If omitted, the axes of y will be used as x.

      +
      + +
    • + +
    • + + y + + + (Array<Numeric>) + + + + — +

      The vertical position for each point.

      +
      + +
    • + +
    • + + name + + + (String) + + + (defaults to: "") + + + — +

      Annotation of the current drawing to be displayed on the right.

      +
      + +
    • + +
    • + + title + + + + + + (defaults to: "") + + +
    • + +
    • + + xlabel + + + + + + (defaults to: "") + + +
    • + +
    • + + ylabel + + + + + + (defaults to: "") + + +
    • + +
    • + + labels + + + + + + (defaults to: true) + + +
    • + +
    • + + border + + + + + + (defaults to: :solid) + + +
    • + +
    • + + margin + + + + + + (defaults to: Plot::DEFAULT_MARGIN) + + +
    • + +
    • + + padding + + + + + + (defaults to: Plot::DEFAULT_PADDING) + + +
    • + +
    • + + color + + + + + + (defaults to: :auto) + + +
    • + +
    • + + width + + + + + + (defaults to: Plot::DEFAULT_WIDTH) + + +
    • + +
    • + + height + + + + + + (defaults to: GridPlot::DEFAULT_HEIGHT) + + +
    • + +
    • + + xlim + + + + + + (defaults to: [0, 0]) + + +
    • + +
    • + + ylim + + + + + + (defaults to: [0, 0]) + + +
    • + +
    • + + canvas + + + (Symbol) + + + (defaults to: :braille) + + + — +

      The type of canvas that should be used for drawing.

      +
      + +
    • + +
    • + + grid + + + (true, false) + + + (defaults to: true) + + + — +

      If true, draws grid-lines at the origin.

      +
      + +
    • + +
    + +

    Returns:

    +
      + +
    • + + + (Lineplot) + + + + — +

      A plot object.

      +
      + +
    • + +
    + +
    + + +
    + + + + +
    +
    +
    +
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +
    +
    # File 'src/lib/unicode_plot/lineplot.rb', line 33
    +
    +module_function def lineplot(*args,
    +                             canvas: :braille,
    +                             color: :auto,
    +                             name: "",
    +                             **kw)
    +  case args.length
    +  when 1
    +    # y only
    +    y = Array(args[0])
    +    x = Array(1 .. y.length)
    +  when 2
    +    # x and y
    +    x = Array(args[0])
    +    y = Array(args[1])
    +  else
    +    raise ArgumentError, "wrong number of arguments"
    +  end
    +
    +  case x[0]
    +  when Time, Date
    +    if x[0].is_a? Time
    +      d = x.map(&:to_f)
    +    else
    +      origin = Date.new(1, 1, 1)
    +      d = x.map {|xi| xi - origin }
    +    end
    +    plot = lineplot(d, y, canvas: canvas, color: color, name: name, **kw)
    +    xmin, xmax = x.minmax
    +    plot.annotate!(:bl, xmin.to_s, color: :light_black)
    +    plot.annotate!(:br, xmax.to_s, color: :light_black)
    +    plot
    +  else
    +    plot = Lineplot.new(x, y, canvas, **kw)
    +    lineplot!(plot, x, y, color: color, name: name)
    +  end
    +end
    +
    +
    + +
    +

    + + .lineplot!(plot, [x], y, name: "", color: :auto) ⇒ Lineplot + + + + + +

    +
    + + + +
    +
    +
    + +
    +
    +

    Draws a path through the given points on the given canvas.

    + + +
    +
    +
    +

    Parameters:

    +
      + +
    • + + plot + + + (Lineplot) + + + + — +

      The plot object.

      +
      + +
    • + +
    • + + x + + + (Array<Numeric>) + + + + — +

      Optional. The horizontal position for each point. If omitted, the axes of y will be used as x.

      +
      + +
    • + +
    • + + y + + + (Array<Numeric>) + + + + — +

      The vertical position for each point.

      +
      + +
    • + +
    • + + name + + + (String) + + + (defaults to: "") + + + — +

      Annotation of the current drawing to be displayed on the right.

      +
      + +
    • + +
    • + + color + + + + + + (defaults to: :auto) + + +
    • + +
    + +

    Returns:

    +
      + +
    • + + + (Lineplot) + + + + — +

      The plot object same as the plot parameter.

      +
      + +
    • + +
    + +
    + + +
    + + + + +
    +
    +
    +
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +110
    +111
    +112
    +113
    +114
    +115
    +116
    +117
    +118
    +119
    +120
    +121
    +122
    +123
    +124
    +
    +
    # File 'src/lib/unicode_plot/lineplot.rb', line 80
    +
    +module_function def lineplot!(plot,
    +                              *args,
    +                              color: :auto,
    +                              name: "")
    +  case args.length
    +  when 1
    +    # y only
    +    y = Array(args[0])
    +    x = Array(1 .. y.length)
    +  when 2
    +    # x and y
    +    x = Array(args[0])
    +    y = Array(args[1])
    +
    +    if x.length == 1 && y.length == 1
    +      # intercept and slope
    +      intercept = x[0]
    +      slope = y[0]
    +      xmin = plot.origin_x
    +      xmax = plot.origin_x + plot.plot_width
    +      ymin = plot.origin_y
    +      ymax = plot.origin_y + plot.plot_height
    +      x = [xmin, xmax]
    +      y = [intercept + xmin*slope, intercept + xmax*slope]
    +    end
    +  else
    +    raise ArgumentError, "wrong number of arguments"
    +  end
    +
    +  case x[0]
    +  when Time, Date
    +    if x[0].is_a? Time
    +      d = x.map(&:to_f)
    +    else
    +      origin = Date.new(1, 1, 1)
    +      d = x.map {|xi| xi - origin }
    +    end
    +    lineplot!(plot, d, y, color: color, name: name)
    +  else
    +    color = color == :auto ? plot.next_color : color
    +    plot.annotate!(:r, name.to_s, color: color) unless name.nil? || name == ""
    +    plot.lines!(x, y, color)
    +  end
    +  plot
    +end
    +
    +
    + +
    +

    + + .scatterplot(*args, canvas: :braille, color: :auto, name: "", **kw) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +
    +
    # File 'src/lib/unicode_plot/scatterplot.rb', line 5
    +
    +module_function def scatterplot(*args,
    +                                canvas: :braille,
    +                                color: :auto,
    +                                name: "",
    +                                **kw)
    +  case args.length
    +  when 1
    +    # y only
    +    y = Array(args[0])
    +    x = Array(1 .. y.length)
    +  when 2
    +    # x and y
    +    x = Array(args[0])
    +    y = Array(args[1])
    +  else
    +    raise ArgumentError, "worng number of arguments"
    +  end
    +
    +  plot = Scatterplot.new(x, y, canvas, **kw)
    +  scatterplot!(plot, x, y, color: color, name: name)
    +end
    +
    +
    + +
    +

    + + .scatterplot!(plot, *args, color: :auto, name: "") ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +
    +
    # File 'src/lib/unicode_plot/scatterplot.rb', line 27
    +
    +module_function def scatterplot!(plot,
    +                                 *args,
    +                                 color: :auto,
    +                                 name: "")
    +  case args.length
    +  when 1
    +    # y only
    +    y = Array(args[0])
    +    x = Array(1 .. y.length)
    +  when 2
    +    # x and y
    +    x = Array(args[0])
    +    y = Array(args[1])
    +  else
    +    raise ArgumentError, "worng number of arguments"
    +  end
    +
    +  color = color == :auto ? plot.next_color : color
    +  plot.annotate!(:r, name.to_s, color: color) unless name.nil? || name == ""
    +  plot.points!(x, y, color)
    +  plot
    +end
    +
    +
    + +
    +

    + + .stairs(x, y, style: :post, name: "", title: "", xlabel: "", ylabel: "", labels: true, border: :solid, margin: 3, padding: 1, color: :auto, width: 40, height: 15, xlim: [0, 0], ylim: [0, 0], canvas: :braille, grid: true) ⇒ Plot + + + + + +

    +
    + + + +
    +
    +
    + +
    +
    +

    Draws a staircase plot on a new canvas.

    + +

    The first vector x should contain the horizontal
    +positions for all the points. The second vector y should then
    +contain the corresponding vertical positions respectively. This
    +means that the two vectors must be of the same length and
    +ordering.

    + + +
    +
    +
    + +
    +

    Examples:

    + + +

    Example usage of stairs on IRB:

    +

    + +
    
    +>> UnicodePlot.stairs([1, 2, 4, 7, 8], [1, 3, 4, 2, 7], style: :post, title: "My Staircase Plot").render
    +                 My Staircase Plot
    +     ┌────────────────────────────────────────┐
    +   7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│
    +     │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│
    +     │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│
    +     │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│
    +     │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│
    +     │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│
    +     │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│
    +     │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡄⠀⠀⠀⠀⢸│
    +     │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│
    +     │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│
    +     │⠀⠀⠀⠀⠀⢸⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│
    +     │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│
    +     │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠧⠤⠤⠤⠤⠼│
    +     │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│
    +   1 │⣀⣀⣀⣀⣀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│
    +     └────────────────────────────────────────┘
    +     1                                        8
    +=> nil
    + +
    +

    Parameters:

    +
      + +
    • + + x + + + (Array<Numeric>) + + + + — +

      The horizontal position for each point.

      +
      + +
    • + +
    • + + y + + + (Array<Numeric>) + + + + — +

      The vertical position for each point.

      +
      + +
    • + +
    • + + style + + + (Symbol) + + + (defaults to: :post) + + + — +

      Specifies where the transition of the stair takes place. Can be either :pre or :post.

      +
      + +
    • + +
    • + + name + + + (String) + + + (defaults to: "") + + + — +

      Annotation of the current drawing to be displayed on the right.

      +
      + +
    • + +
    • + + height + + + (Integer) + + + (defaults to: 15) + + + — +

      Number of character rows that should be used for plotting.

      +
      + +
    • + +
    • + + xlim + + + (Array<Numeric>) + + + (defaults to: [0, 0]) + + + — +

      Plotting range for the x axis. [0, 0] stands for automatic.

      +
      + +
    • + +
    • + + ylim + + + (Array<Numeric>) + + + (defaults to: [0, 0]) + + + — +

      Plotting range for the y axis. [0, 0] stands for automatic.

      +
      + +
    • + +
    • + + canvas + + + (Symbol) + + + (defaults to: :braille) + + + — +

      The type of canvas that should be used for drawing.

      +
      + +
    • + +
    • + + grid + + + (Boolean) + + + (defaults to: true) + + + — +

      If true, draws grid-lines at the origin.

      +
      + +
    • + +
    + +

    Returns:

    +
      + +
    • + + + (Plot) + + + + — +

      A plot object.

      +
      + +
    • + +
    + +

    See Also:

    + + +
    + + +
    + + + + +
    +
    +
    +
    +52
    +53
    +54
    +55
    +
    +
    # File 'src/lib/unicode_plot/stairs.rb', line 52
    +
    +module_function def stairs(xvec, yvec, style: :post, **kw)
    +  x_vex, y_vex = compute_stair_lines(xvec, yvec, style: style)
    +  lineplot(x_vex, y_vex, **kw)
    +end
    +
    +
    + +
    +

    + + .stairs!(plot, xvec, yvec, style: :post, **kw) ⇒ Object + + + + + +

    +
    +

    Similar to stairs, but takes an existing plot object as a first argument.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +58
    +59
    +60
    +61
    +
    +
    # File 'src/lib/unicode_plot/stairs.rb', line 58
    +
    +module_function def stairs!(plot, xvec, yvec, style: :post, **kw)
    +  x_vex, y_vex = compute_stair_lines(xvec, yvec, style: style)
    +  lineplot!(plot, x_vex, y_vex, **kw)
    +end
    +
    +
    + +
    +

    + + .stemplot(*args, scale: 10, **kw) ⇒ Object + + + + + +

    +
    +

    Generates one or more Stemplot objects from the input data
    +and prints a Single or Double stemplot using stemplot1! or stemplot2!

    + + +
    +
    +
    + +
    +

    Examples:

    + + +

    Single sided stemplot

    +

    + +
    >> UnicodePlot.stemplot(eighty_ints)
    +0 | 257
    +1 | 00335679
    +2 | 034455899
    +3 | 145588
    +4 | 0022223
    +5 | 0223399
    +6 | 012345568889
    +7 | 01133334466777888
    +8 | 013689
    +9 | 22667
    +Key: 1|0 = 10
    +The decimal is 1 digit(s) to the right of |
    + + +

    Back-to-back stemplot

    +

    + +
    >> UnicodePlot.stemplot(eighty_ints, another_eighty_ints)
    +              752 | 0 | 1244457899
    +         97653300 | 1 | 4799
    +        998554430 | 2 | 015668
    +           885541 | 3 | 0144557888899
    +          3222200 | 4 | 00268
    +          9933220 | 5 | 0234778
    +     988865543210 | 6 | 122222357889
    +88877766443333110 | 7 | 134556689
    +           986310 | 8 | 24589
    +            76622 | 9 | 022234468
    +Key: 1|0 = 10
    +The decimal is 1 digit(s) to the right of |
    + +
    + + +

    See Also:

    + + +
    + + + + +
    +
    +
    +
    +323
    +324
    +325
    +326
    +327
    +328
    +329
    +330
    +331
    +332
    +333
    +334
    +335
    +336
    +337
    +338
    +339
    +340
    +341
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 323
    +
    +def stemplot(*args, scale: 10, **kw)
    +  case args.length
    +  when 1
    +    # Stemplot object
    +    plt = Stemplot.factory(args[0], scale: scale, **kw)
    +    # Dispatch to plot routine
    +    stemplot1!(plt, scale: scale, **kw)
    +  when 2
    +    # Stemplot object
    +    plt1 = Stemplot.factory(args[0], scale: scale)
    +    plt2 = Stemplot.factory(args[1], scale: scale)
    +    raise ArgumentError, "Plot types must be the same for back-to-back stemplot " +
    +          "#{plt1.class} != #{plt2.class}" unless plt1.class == plt2.class
    +    # Dispatch to plot routine
    +    stemplot2!(plt1, plt2, scale: scale, **kw)
    +  else
    +    raise ArgumentError, "Expecting one or two arguments"
    +  end
    +end
    +
    +
    + +
    +

    + + .stemplot1!(plt, scale: 10, divider: "|", padchar: " ", trim: false, **_kw) ⇒ Object + + + + + +

    +
    +

    Print a Single-Vector stemplot to STDOUT.

    + +
      +
    • Stem data is printed on the left.
    • +
    • Leaf data is printed on the right.
    • +
    • Key is printed at the bottom.
    • +
    + + +
    +
    +
    +

    Parameters:

    +
      + +
    • + + plt + + + (Stemplot) + + + + — +

      Stemplot object

      +
      + +
    • + +
    • + + scale + + + (Integer) + + + (defaults to: 10) + + + — +

      Scale, should be a power of 10

      +
      + +
    • + +
    • + + divider + + + (String) + + + (defaults to: "|") + + + — +

      Divider character between stem and leaf

      +
      + +
    • + +
    • + + padchar + + + (String) + + + (defaults to: " ") + + + — +

      Padding character

      +
      + +
    • + +
    • + + trim + + + (Boolean) + + + (defaults to: false) + + + — +

      Trim missing stems from the plot

      +
      + +
    • + +
    + + +
    + + + + +
    +
    +
    +
    +233
    +234
    +235
    +236
    +237
    +238
    +239
    +240
    +241
    +242
    +243
    +244
    +245
    +246
    +247
    +248
    +249
    +250
    +251
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 233
    +
    +def stemplot1!(plt, 
    +               scale: 10,
    +               divider: "|",
    +               padchar: " ",
    +               trim: false,
    +               **_kw
    +              )
    +
    +  stem_labels = plt.stems(all: !trim)
    +  label_len = stem_labels.map(&:length).max
    +  column_len = label_len + 1
    +  
    +  stem_labels.each do |stem|
    +    leaves = plt.leaves(stem).sort
    +    stemlbl = stem.rjust(label_len, padchar).ljust(column_len, padchar)
    +    puts stemlbl + divider + padchar + leaves.join
    +  end
    +  plt.print_key(scale, divider)
    +end
    +
    +
    + +
    +

    + + .stemplot2!(plt1, plt2, scale: 10, divider: "|", padchar: " ", trim: false, **_kw) ⇒ Object + + + + + +

    +
    +

    Print a Back-to-Back Stemplot to STDOUT

    + +
      +
    • +plt1+ Leaf data is printed on the left.
    • +
    • Common stem data is printed in the center.
    • +
    • +plt2+ Leaf data is printed on the right.
    • +
    • Key is printed at the bottom.
    • +
    + + +
    +
    +
    +

    Parameters:

    +
      + +
    • + + plt1 + + + (Stemplot) + + + + — +

      Stemplot object for the left side

      +
      + +
    • + +
    • + + plt2 + + + (Stemplot) + + + + — +

      Stemplot object for the right side

      +
      + +
    • + +
    • + + scale + + + (Integer) + + + (defaults to: 10) + + + — +

      Scale, should be a power of 10

      +
      + +
    • + +
    • + + divider + + + (String) + + + (defaults to: "|") + + + — +

      Divider character between stem and leaf

      +
      + +
    • + +
    • + + padchar + + + (String) + + + (defaults to: " ") + + + — +

      Padding character

      +
      + +
    • + +
    • + + trim + + + (Boolean) + + + (defaults to: false) + + + — +

      Trim missing stems from the plot

      +
      + +
    • + +
    + + +
    + + + + +
    +
    +
    +
    +265
    +266
    +267
    +268
    +269
    +270
    +271
    +272
    +273
    +274
    +275
    +276
    +277
    +278
    +279
    +280
    +281
    +282
    +283
    +284
    +285
    +286
    +287
    +288
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 265
    +
    +def stemplot2!(plt1, plt2,
    +               scale: 10,
    +               divider: "|",
    +               padchar: " ",
    +               trim: false,
    +               **_kw
    +              )
    +  stem_labels = plt1.class.sorted_stem_list( (plt1.raw_stems + plt2.raw_stems).uniq, all: !trim )
    +  label_len = stem_labels.map(&:length).max
    +  column_len = label_len + 1
    +
    +  leftleaf_len = plt1.max_stem_length
    +
    +  stem_labels.each do |stem|
    +    left_leaves = plt1.leaves(stem).sort.join('')
    +    right_leaves = plt2.leaves(stem).sort.join('')
    +    left_leaves_just = left_leaves.reverse.rjust(leftleaf_len, padchar)
    +    stem = stem.rjust(column_len, padchar).ljust(column_len+1, padchar)
    +    puts left_leaves_just + padchar + divider + stem + divider + padchar + right_leaves
    +  end
    +
    +  plt1.print_key(scale, divider)
    +
    +end
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/AsciiCanvas.html b/0.0.5/UnicodePlot/AsciiCanvas.html new file mode 100644 index 0000000..2b9f2cc --- /dev/null +++ b/0.0.5/UnicodePlot/AsciiCanvas.html @@ -0,0 +1,488 @@ + + + + + + + Class: UnicodePlot::AsciiCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::AsciiCanvas + + + +

    +
    + +
    +
    Inherits:
    +
    + LookupCanvas + + + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/canvas/ascii_canvas.rb
    +
    + +
    + + + +

    + Constant Summary + collapse +

    + +
    + +
    ASCII_SIGNS = + +
    +
    [
    +  [ 0b100_000_000, 0b000_100_000, 0b000_000_100 ].freeze,
    +  [ 0b010_000_000, 0b000_010_000, 0b000_000_010 ].freeze,
    +  [ 0b001_000_000, 0b000_001_000, 0b000_000_001 ].freeze
    +].freeze
    + +
    ASCII_LOOKUP = + +
    +
    {
    +  0b101_000_000 => '"',
    +  0b111_111_111 => '@',
    + #0b011_110_011 => '$',
    +  0b010_000_000 => '\'',
    +  0b010_100_010 => '(',
    +  0b010_001_010 => ')',
    +  0b000_010_000 => '*',
    +  0b010_111_010 => '+',
    +  0b000_010_010 => ',',
    +  0b000_100_100 => ',',
    +  0b000_001_001 => ',',
    +  0b000_111_000 => '-',
    +  0b000_000_010 => '.',
    +  0b000_000_100 => '.',
    +  0b000_000_001 => '.',
    +  0b001_010_100 => '/',
    +  0b010_100_000 => '/',
    +  0b001_010_110 => '/',
    +  0b011_010_010 => '/',
    +  0b001_010_010 => '/',
    +  0b110_010_111 => '1',
    + #0b111_010_100 => '7',
    +  0b010_000_010 => ':',
    +  0b111_000_111 => '=',
    + #0b010_111_101 => 'A',
    + #0b011_100_011 => 'C',
    + #0b110_101_110 => 'D',
    + #0b111_110_100 => 'F',
    + #0b011_101_011 => 'G',
    + #0b101_111_101 => 'H',
    +  0b111_010_111 => 'I',
    + #0b011_001_111 => 'J',
    + #0b101_110_101 => 'K',
    +  0b100_100_111 => 'L',
    + #0b111_111_101 => 'M',
    + #0b101_101_101 => 'N',
    + #0b111_101_111 => 'O',
    + #0b111_111_100 => 'P',
    +  0b111_010_010 => 'T',
    + #0b101_101_111 => 'U',
    +  0b101_101_010 => 'V',
    + #0b101_111_111 => 'W',
    +  0b101_010_101 => 'X',
    +  0b101_010_010 => 'Y',
    +  0b110_100_110 => '[',
    +  0b010_001_000 => '\\',
    +  0b100_010_001 => '\\',
    +  0b110_010_010 => '\\',
    +  0b100_010_011 => '\\',
    +  0b100_010_010 => '\\',
    +  0b011_001_011 => ']',
    +  0b010_101_000 => '^',
    +  0b000_000_111 => '_',
    +  0b100_000_000 => '`',
    + #0b000_111_111 => 'a',
    + #0b100_111_111 => 'b',
    + #0b001_111_111 => 'd',
    + #0b001_111_010 => 'f',
    + #0b100_111_101 => 'h',
    + #0b100_101_101 => 'k',
    +  0b110_010_011 => 'l',
    + #0b000_111_101 => 'n',
    +  0b000_111_100 => 'r',
    + #0b000_101_111 => 'u',
    +  0b000_101_010 => 'v',
    +  0b011_110_011 => '{',
    +  0b010_010_010 => '|',
    +  0b100_100_100 => '|',
    +  0b001_001_001 => '|',
    +  0b110_011_110 => '}',
    +}.freeze
    + +
    ASCII_DECODE = + +
    +
    [' ']
    + +
    PIXEL_PER_CHAR = + +
    +
    3
    + +
    + + + + + + +

    Constants inherited + from Canvas

    +

    Canvas::CANVAS_CLASS_MAP

    + + + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + + + +

    Instance Attribute Summary

    + +

    Attributes inherited from Canvas

    +

    #height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods inherited from LookupCanvas

    +

    #pixel!, #print_row

    + + + + + + + + + +

    Methods inherited from Canvas

    +

    #char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

    + + + + + + + + + +

    Methods included from BorderPrinter

    +

    #print_border_bottom, #print_border_top

    + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(width, height, **kw) ⇒ AsciiCanvas + + + + + +

    +
    +

    Returns a new instance of AsciiCanvas.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +110
    +111
    +112
    +113
    +114
    +
    +
    # File 'src/lib/unicode_plot/canvas/ascii_canvas.rb', line 110
    +
    +def initialize(width, height, **kw)
    +  super(width, height,
    +        PIXEL_PER_CHAR, PIXEL_PER_CHAR,
    +        **kw)
    +end
    +
    +
    + +
    + + +
    +

    Instance Method Details

    + + +
    +

    + + #lookup_decode(code) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +120
    +121
    +122
    +
    +
    # File 'src/lib/unicode_plot/canvas/ascii_canvas.rb', line 120
    +
    +def lookup_decode(code)
    +  ASCII_DECODE[code]
    +end
    +
    +
    + +
    +

    + + #lookup_encode(x, y) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +116
    +117
    +118
    +
    +
    # File 'src/lib/unicode_plot/canvas/ascii_canvas.rb', line 116
    +
    +def lookup_encode(x, y)
    +  ASCII_SIGNS[x][y]
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/Barplot.html b/0.0.5/UnicodePlot/Barplot.html new file mode 100644 index 0000000..e315d32 --- /dev/null +++ b/0.0.5/UnicodePlot/Barplot.html @@ -0,0 +1,780 @@ + + + + + + + Class: UnicodePlot::Barplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::Barplot + + + +

    +
    + +
    +
    Inherits:
    +
    + Plot + +
      +
    • Object
    • + + + + + +
    + show all + +
    +
    + + + + + + +
    +
    Includes:
    +
    ValueTransformer
    +
    + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/barplot.rb
    +
    + +
    + + + +

    + Constant Summary + collapse +

    + +
    + +
    MIN_WIDTH = + +
    +
    10
    + +
    DEFAULT_COLOR = + +
    +
    :green
    + +
    DEFAULT_SYMBOL = + +
    +
    ""
    + +
    + + + + + + +

    Constants included + from ValueTransformer

    +

    ValueTransformer::PREDEFINED_TRANSFORM_FUNCTIONS

    + + + +

    Constants inherited + from Plot

    +

    Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING, Plot::DEFAULT_WIDTH

    + + + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + +

    Instance Attribute Summary collapse

    +
      + +
    • + + + #max_freq ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute max_freq.

      +
      + +
    • + + +
    • + + + #max_len ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute max_len.

      +
      + +
    • + + +
    • + + + #width ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute width.

      +
      + +
    • + + +
    + + + + + +

    Attributes inherited from Plot

    +

    #border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods included from ValueTransformer

    +

    transform_name, #transform_values

    + + + + + + + + + +

    Methods inherited from Plot

    +

    #annotate!, #annotate_row!, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

    + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(bars, width, color, symbol, transform, **kw) ⇒ Barplot + + + + + +

    +
    +

    Returns a new instance of Barplot.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +
    +
    # File 'src/lib/unicode_plot/barplot.rb', line 9
    +
    +def initialize(bars, width, color, symbol, transform, **kw)
    +  if symbol.length > 1
    +    raise ArgumentError, "symbol must be a single character"
    +  end
    +  @bars = bars
    +  @symbol = symbol
    +  @max_freq, i = find_max(transform_values(transform, bars))
    +  @max_len = bars[i].to_s.length
    +  @width = [width, max_len + 7, MIN_WIDTH].max
    +  @color = color
    +  @symbol = symbol
    +  @transform = transform
    +  super(**kw)
    +end
    +
    +
    + +
    + +
    +

    Instance Attribute Details

    + + + +
    +

    + + #max_freqObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute max_freq.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +24
    +25
    +26
    +
    +
    # File 'src/lib/unicode_plot/barplot.rb', line 24
    +
    +def max_freq
    +  @max_freq
    +end
    +
    +
    + + + +
    +

    + + #max_lenObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute max_len.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +25
    +26
    +27
    +
    +
    # File 'src/lib/unicode_plot/barplot.rb', line 25
    +
    +def max_len
    +  @max_len
    +end
    +
    +
    + + + +
    +

    + + #widthObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute width.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +26
    +27
    +28
    +
    +
    # File 'src/lib/unicode_plot/barplot.rb', line 26
    +
    +def width
    +  @width
    +end
    +
    +
    + +
    + + +
    +

    Instance Method Details

    + + +
    +

    + + #add_row!(bars) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +36
    +37
    +38
    +39
    +40
    +
    +
    # File 'src/lib/unicode_plot/barplot.rb', line 36
    +
    +def add_row!(bars)
    +  @bars.concat(bars)
    +  @max_freq, i = find_max(transform_values(@transform, bars))
    +  @max_len = @bars[i].to_s.length
    +end
    +
    +
    + +
    +

    + + #n_columnsObject + + + + + +

    + + + + +
    +
    +
    +
    +32
    +33
    +34
    +
    +
    # File 'src/lib/unicode_plot/barplot.rb', line 32
    +
    +def n_columns
    +  @width
    +end
    +
    +
    + +
    +

    + + #n_rowsObject + + + + + +

    + + + + +
    +
    +
    +
    +28
    +29
    +30
    +
    +
    # File 'src/lib/unicode_plot/barplot.rb', line 28
    +
    +def n_rows
    +  @bars.length
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +
    +
    # File 'src/lib/unicode_plot/barplot.rb', line 42
    +
    +def print_row(out, row_index)
    +  check_row_index(row_index)
    +  bar = @bars[row_index]
    +  max_bar_width = [width - 2 - max_len, 1].max
    +  val = transform_values(@transform, bar)
    +  bar_len = max_freq > 0 ?
    +    ([val, 0].max.fdiv(max_freq) * max_bar_width).round :
    +    0
    +  bar_str = max_freq > 0 ? @symbol * bar_len : ""
    +  bar_lbl = bar.to_s
    +  print_styled(out, bar_str, color: @color)
    +  print_styled(out, " ", bar_lbl, color: :normal)
    +  pan_len = [max_bar_width + 1 + max_len - bar_len - bar_lbl.length, 0].max
    +  pad = " " * pan_len.round
    +  out.print(pad)
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/BlockCanvas.html b/0.0.5/UnicodePlot/BlockCanvas.html new file mode 100644 index 0000000..eb43372 --- /dev/null +++ b/0.0.5/UnicodePlot/BlockCanvas.html @@ -0,0 +1,433 @@ + + + + + + + Class: UnicodePlot::BlockCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::BlockCanvas + + + +

    +
    + +
    +
    Inherits:
    +
    + LookupCanvas + + + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/canvas/block_canvas.rb
    +
    + +
    + +

    Overview

    +
    +

    The BlockCanvas is also Unicode-based.
    +It has half the resolution of the BrailleCanvas.
    +In contrast to BrailleCanvas, the pixels don’t
    +have visible spacing between them.
    +This canvas effectively turns every character
    +into 4 pixels that can individually be manipulated
    +using binary operations.

    + + +
    +
    +
    + + +
    + +

    + Constant Summary + collapse +

    + +
    + +
    X_PIXEL_PER_CHAR = + +
    +
    2
    + +
    Y_PIXEL_PER_CHAR = + +
    +
    2
    + +
    BLOCK_SIGNS = + +
    +
    [
    +  [0b1000, 0b0010].freeze,
    +  [0b0100, 0b0001].freeze
    +].freeze
    + +
    BLOCK_DECODE = + +
    +
    [
    +  -' ', -'', -'', -'',
    +  -'', -'', -'', -'',
    +  -'', -'', -'', -'',
    +  -'', -'', -'', -''
    +].freeze
    + +
    + + + + + + +

    Constants inherited + from Canvas

    +

    Canvas::CANVAS_CLASS_MAP

    + + + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + + + +

    Instance Attribute Summary

    + +

    Attributes inherited from Canvas

    +

    #height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods inherited from LookupCanvas

    +

    #pixel!, #print_row

    + + + + + + + + + +

    Methods inherited from Canvas

    +

    #char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

    + + + + + + + + + +

    Methods included from BorderPrinter

    +

    #print_border_bottom, #print_border_top

    + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(width, height, fill_char = 0, **kw) ⇒ BlockCanvas + + + + + +

    +
    +

    Returns a new instance of BlockCanvas.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +
    +
    # File 'src/lib/unicode_plot/canvas/block_canvas.rb', line 15
    +
    +def initialize(width, height, fill_char=0, **kw)
    +  super(width, height,
    +        X_PIXEL_PER_CHAR,
    +        Y_PIXEL_PER_CHAR,
    +        fill_char,
    +        **kw)
    +end
    +
    +
    + +
    + + +
    +

    Instance Method Details

    + + +
    +

    + + #lookup_decode(x) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +36
    +
    +
    # File 'src/lib/unicode_plot/canvas/block_canvas.rb', line 36
    +
    +def lookup_decode(x) ; BLOCK_DECODE[x] ; end
    +
    +
    + +
    +

    + + #lookup_encode(x, y) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +35
    +
    +
    # File 'src/lib/unicode_plot/canvas/block_canvas.rb', line 35
    +
    +def lookup_encode(x,y) ; BLOCK_SIGNS[x][y] ; end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/BorderMaps.html b/0.0.5/UnicodePlot/BorderMaps.html new file mode 100644 index 0000000..7c0a03d --- /dev/null +++ b/0.0.5/UnicodePlot/BorderMaps.html @@ -0,0 +1,158 @@ + + + + + + + Module: UnicodePlot::BorderMaps + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Module: UnicodePlot::BorderMaps + + + +

    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/renderer.rb
    +
    + +
    + + + +

    + Constant Summary + collapse +

    + +
    + +
    BORDER_SOLID = + +
    +
    {
    +  tl: "",
    +  tr: "",
    +  bl: "",
    +  br: "",
    +  t:  "",
    +  l:  "",
    +  b:  "",
    +  r:  ""
    +}.freeze
    + +
    BORDER_CORNERS = + +
    +
    {
    +  tl: "",
    +  tr: "",
    +  bl: "",
    +  br: "",
    +  t:  " ",
    +  l:  " ",
    +  b:  " ",
    +  r:  " ",
    +}.freeze
    + +
    BORDER_BARPLOT = + +
    +
    {
    +  tl: "",
    +  tr: "",
    +  bl: "",
    +  br: "",
    +  t:  " ",
    +  l:  "",
    +  b:  " ",
    +  r:  " ",
    +}.freeze
    + +
    + + + + + + + + + + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/BorderPrinter.html b/0.0.5/UnicodePlot/BorderPrinter.html new file mode 100644 index 0000000..b01288a --- /dev/null +++ b/0.0.5/UnicodePlot/BorderPrinter.html @@ -0,0 +1,263 @@ + + + + + + + Module: UnicodePlot::BorderPrinter + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Module: UnicodePlot::BorderPrinter + + + +

    +
    + + + + + + +
    +
    Includes:
    +
    StyledPrinter
    +
    + + + + +
    +
    Included in:
    +
    Canvas, Renderer
    +
    + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/renderer.rb
    +
    + +
    + + + + +

    Constant Summary

    + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + + + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    + + +
    +

    Instance Method Details

    + + +
    + + + + + +
    +
    +
    +
    +56
    +57
    +58
    +59
    +60
    +
    +
    # File 'src/lib/unicode_plot/renderer.rb', line 56
    +
    +def print_border_bottom(out, padding, length, border=:solid, color: :light_black)
    +  return if border == :none
    +  b = BORDER_MAP[border]
    +  print_styled(out, padding, b[:bl], b[:b] * length, b[:br], color: color)
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +50
    +51
    +52
    +53
    +54
    +
    +
    # File 'src/lib/unicode_plot/renderer.rb', line 50
    +
    +def print_border_top(out, padding, length, border=:solid, color: :light_black)
    +  return if border == :none
    +  b = BORDER_MAP[border]
    +  print_styled(out, padding, b[:tl], b[:t] * length, b[:tr], color: color)
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/Boxplot.html b/0.0.5/UnicodePlot/Boxplot.html new file mode 100644 index 0000000..af43e3f --- /dev/null +++ b/0.0.5/UnicodePlot/Boxplot.html @@ -0,0 +1,786 @@ + + + + + + + Class: UnicodePlot::Boxplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::Boxplot + + + +

    +
    + +
    +
    Inherits:
    +
    + Plot + +
      +
    • Object
    • + + + + + +
    + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/boxplot.rb
    +
    + +
    + + + +

    + Constant Summary + collapse +

    + +
    + +
    MIN_WIDTH = + +
    +
    10
    + +
    DEFAULT_COLOR = + +
    +
    :green
    + +
    + + + + + + +

    Constants inherited + from Plot

    +

    Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING, Plot::DEFAULT_WIDTH

    + + + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + +

    Instance Attribute Summary collapse

    +
      + +
    • + + + #max_x ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute max_x.

      +
      + +
    • + + +
    • + + + #min_x ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute min_x.

      +
      + +
    • + + +
    + + + + + +

    Attributes inherited from Plot

    +

    #border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods inherited from Plot

    +

    #annotate!, #annotate_row!, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

    + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(data, width, color, min_x, max_x, **kw) ⇒ Boxplot + + + + + +

    +
    +

    Returns a new instance of Boxplot.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +
    +
    # File 'src/lib/unicode_plot/boxplot.rb', line 8
    +
    +def initialize(data, width, color, min_x, max_x, **kw)
    +  if min_x == max_x
    +    min_x -= 1
    +    max_x += 1
    +  end
    +  width = [width, MIN_WIDTH].max
    +  @data = [data.percentile([0, 25, 50, 75, 100])]
    +  @color = color
    +  @width = [width, MIN_WIDTH].max
    +  @min_x = min_x
    +  @max_x = max_x
    +  super(**kw)
    +end
    +
    +
    + +
    + +
    +

    Instance Attribute Details

    + + + +
    +

    + + #max_xObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute max_x.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +23
    +24
    +25
    +
    +
    # File 'src/lib/unicode_plot/boxplot.rb', line 23
    +
    +def max_x
    +  @max_x
    +end
    +
    +
    + + + +
    +

    + + #min_xObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute min_x.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +22
    +23
    +24
    +
    +
    # File 'src/lib/unicode_plot/boxplot.rb', line 22
    +
    +def min_x
    +  @min_x
    +end
    +
    +
    + +
    + + +
    +

    Instance Method Details

    + + +
    +

    + + #add_series!(data) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +37
    +38
    +39
    +40
    +41
    +42
    +
    +
    # File 'src/lib/unicode_plot/boxplot.rb', line 37
    +
    +def add_series!(data)
    +  mi, ma = data.minmax
    +  @data << data.percentile([0, 25, 50, 75, 100])
    +  @min_x = [mi, @min_x].min
    +  @max_x = [ma, @max_x].max
    +end
    +
    +
    + +
    +

    + + #n_columnsObject + + + + + +

    + + + + +
    +
    +
    +
    +33
    +34
    +35
    +
    +
    # File 'src/lib/unicode_plot/boxplot.rb', line 33
    +
    +def n_columns
    +  @width
    +end
    +
    +
    + +
    +

    + + #n_dataObject + + + + + +

    + + + + +
    +
    +
    +
    +25
    +26
    +27
    +
    +
    # File 'src/lib/unicode_plot/boxplot.rb', line 25
    +
    +def n_data
    +  @data.length
    +end
    +
    +
    + +
    +

    + + #n_rowsObject + + + + + +

    + + + + +
    +
    +
    +
    +29
    +30
    +31
    +
    +
    # File 'src/lib/unicode_plot/boxplot.rb', line 29
    +
    +def n_rows
    +  3 * @data.length
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +
    +
    # File 'src/lib/unicode_plot/boxplot.rb', line 44
    +
    +def print_row(out, row_index)
    +  check_row_index(row_index)
    +  series = @data[(row_index / 3.0).to_i]
    +
    +  series_row = row_index % 3
    +
    +  min_char       = ['', '' , ''][series_row]
    +  line_char      = [' ', '' , ' '][series_row]
    +  left_box_char  = ['', '' , ''][series_row]
    +  line_box_char  = ['', ' ' , ''][series_row]
    +  median_char    = ['', '' , ''][series_row]
    +  right_box_char = ['', '' , ''][series_row]
    +  max_char       = ['', '' , ''][series_row]
    +
    +  line = (0 ... @width).map { ' ' }
    +
    +  # Draw shapes first - this is most important,
    +  # so they'll always be drawn even if there's not enough space
    +
    +  transformed = transform(series)
    +  line[transformed[0] - 1] = min_char
    +  line[transformed[1] - 1] = left_box_char
    +  line[transformed[2] - 1] = median_char
    +  line[transformed[3] - 1] = right_box_char
    +  line[transformed[4] - 1] = max_char
    +
    +  (transformed[0] ... (transformed[1] - 1)).each do |i|
    +    line[i] = line_char
    +  end
    +  (transformed[1] ... (transformed[2] - 1)).each do |i|
    +    line[i] = line_box_char
    +  end
    +  (transformed[2] ... (transformed[3] - 1)).each do |i|
    +    line[i] = line_box_char
    +  end
    +  (transformed[3] ... (transformed[4] - 1)).each do |i|
    +    line[i] = line_char
    +  end
    +
    +  print_styled(out, line.join(''), color: @color)
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/BrailleCanvas.html b/0.0.5/UnicodePlot/BrailleCanvas.html new file mode 100644 index 0000000..6bed863 --- /dev/null +++ b/0.0.5/UnicodePlot/BrailleCanvas.html @@ -0,0 +1,466 @@ + + + + + + + Class: UnicodePlot::BrailleCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::BrailleCanvas + + + +

    +
    + +
    +
    Inherits:
    +
    + Canvas + +
      +
    • Object
    • + + + + + +
    + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/canvas/braille_canvas.rb
    +
    + +
    + + + +

    + Constant Summary + collapse +

    + +
    + +
    X_PIXEL_PER_CHAR = + +
    +
    2
    + +
    Y_PIXEL_PER_CHAR = + +
    +
    4
    + +
    BRAILLE_SIGNS = + +
    +
    [
    +  [
    +    0x2801,
    +    0x2802,
    +    0x2804,
    +    0x2840,
    +  ].freeze,
    +  [
    +    0x2808,
    +    0x2810,
    +    0x2820,
    +    0x2880
    +  ].freeze
    +].freeze
    + +
    + + + + + + +

    Constants inherited + from Canvas

    +

    Canvas::CANVAS_CLASS_MAP

    + + + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + + + +

    Instance Attribute Summary

    + +

    Attributes inherited from Canvas

    +

    #height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods inherited from Canvas

    +

    #char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

    + + + + + + + + + +

    Methods included from BorderPrinter

    +

    #print_border_bottom, #print_border_top

    + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(width, height, **kw) ⇒ BrailleCanvas + + + + + +

    +
    +

    Returns a new instance of BrailleCanvas.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +
    +
    # File 'src/lib/unicode_plot/canvas/braille_canvas.rb', line 23
    +
    +def initialize(width, height, **kw)
    +  super(width, height,
    +        width * X_PIXEL_PER_CHAR,
    +        height * Y_PIXEL_PER_CHAR,
    +        "\u{2800}",
    +        x_pixel_per_char: X_PIXEL_PER_CHAR,
    +        y_pixel_per_char: Y_PIXEL_PER_CHAR,
    +        **kw)
    +end
    +
    +
    + +
    + + +
    +

    Instance Method Details

    + + +
    +

    + + #pixel!(pixel_x, pixel_y, color) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +
    +
    # File 'src/lib/unicode_plot/canvas/braille_canvas.rb', line 33
    +
    +def pixel!(pixel_x, pixel_y, color)
    +  unless 0 <= pixel_x && pixel_x <= pixel_width &&
    +         0 <= pixel_y && pixel_y <= pixel_height
    +    return color
    +  end
    +  pixel_x -= 1 unless pixel_x < pixel_width
    +  pixel_y -= 1 unless pixel_y < pixel_height
    +  tx = pixel_x.fdiv(pixel_width) * width
    +  char_x = tx.floor + 1
    +  char_x_off = pixel_x % X_PIXEL_PER_CHAR + 1
    +  char_x += 1 if char_x < tx.round + 1 && char_x_off == 1
    +
    +  char_y_off = pixel_y % Y_PIXEL_PER_CHAR + 1
    +  char_y = ((pixel_y - (char_y_off - 1)) / Y_PIXEL_PER_CHAR) + 1
    +
    +  index = index_at(char_x - 1, char_y - 1)
    +  if index
    +    @grid[index] = (@grid[index].ord | BRAILLE_SIGNS[char_x_off - 1][char_y_off - 1]).chr(Encoding::UTF_8)
    +    @colors[index] |= COLOR_ENCODE[color]
    +  end
    +  color
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +
    +
    # File 'src/lib/unicode_plot/canvas/braille_canvas.rb', line 56
    +
    +def print_row(out, row_index)
    +  unless 0 <= row_index && row_index < height
    +    raise ArgumentError, "row_index out of bounds"
    +  end
    +  y = row_index
    +  (0 ... width).each do |x|
    +    print_color(out, color_at(x, y), char_at(x, y))
    +  end
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/Canvas.html b/0.0.5/UnicodePlot/Canvas.html new file mode 100644 index 0000000..32d60b1 --- /dev/null +++ b/0.0.5/UnicodePlot/Canvas.html @@ -0,0 +1,1721 @@ + + + + + + + Class: UnicodePlot::Canvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::Canvas + + + +

    +
    + +
    +
    Inherits:
    +
    + Object + +
      +
    • Object
    • + + + +
    + show all + +
    +
    + + + + + + +
    +
    Includes:
    +
    BorderPrinter
    +
    + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/canvas.rb
    +
    + +
    + +
    +

    Direct Known Subclasses

    +

    BrailleCanvas, DensityCanvas, LookupCanvas

    +
    + + +

    + Constant Summary + collapse +

    + +
    + +
    CANVAS_CLASS_MAP = + +
    +
    {}
    + +
    + + + + + + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + +

    Instance Attribute Summary collapse

    +
      + +
    • + + + #height ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute height.

      +
      + +
    • + + +
    • + + + #origin_x ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute origin_x.

      +
      + +
    • + + +
    • + + + #origin_y ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute origin_y.

      +
      + +
    • + + +
    • + + + #pixel_height ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute pixel_height.

      +
      + +
    • + + +
    • + + + #pixel_width ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute pixel_width.

      +
      + +
    • + + +
    • + + + #plot_height ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute plot_height.

      +
      + +
    • + + +
    • + + + #plot_width ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute plot_width.

      +
      + +
    • + + +
    • + + + #width ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute width.

      +
      + +
    • + + +
    • + + + #x_pixel_per_char ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute x_pixel_per_char.

      +
      + +
    • + + +
    • + + + #y_pixel_per_char ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute y_pixel_per_char.

      +
      + +
    • + + +
    + + + + + +

    + Class Method Summary + collapse +

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods included from BorderPrinter

    +

    #print_border_bottom, #print_border_top

    + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(width, height, pixel_width, pixel_height, fill_char, origin_x: 0, origin_y: 0, plot_width: 1, plot_height: 1, x_pixel_per_char: 1, y_pixel_per_char: 1) ⇒ Canvas + + + + + +

    +
    +

    Returns a new instance of Canvas.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 17
    +
    +def initialize(width, height, pixel_width, pixel_height, fill_char,
    +               origin_x: 0,
    +               origin_y: 0,
    +               plot_width: 1,
    +               plot_height: 1,
    +               x_pixel_per_char: 1,
    +               y_pixel_per_char: 1)
    +  @width = width
    +  @height = height
    +  @pixel_width = check_positive(pixel_width, :pixel_width)
    +  @pixel_height = check_positive(pixel_height, :pixel_height)
    +  @origin_x = origin_x
    +  @origin_y = origin_y
    +  @plot_width = plot_width
    +  @plot_height = plot_height
    +  @x_pixel_per_char = x_pixel_per_char
    +  @y_pixel_per_char = y_pixel_per_char
    +  @grid = Array.new(@width * @height, fill_char)
    +  @colors = Array.new(@width * @height, COLOR_ENCODE[:normal])
    +end
    +
    +
    + +
    + +
    +

    Instance Attribute Details

    + + + +
    +

    + + #heightObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute height.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +39
    +40
    +41
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 39
    +
    +def height
    +  @height
    +end
    +
    +
    + + + +
    +

    + + #origin_xObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute origin_x.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +42
    +43
    +44
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 42
    +
    +def origin_x
    +  @origin_x
    +end
    +
    +
    + + + +
    +

    + + #origin_yObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute origin_y.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +43
    +44
    +45
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 43
    +
    +def origin_y
    +  @origin_y
    +end
    +
    +
    + + + +
    +

    + + #pixel_heightObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute pixel_height.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +41
    +42
    +43
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 41
    +
    +def pixel_height
    +  @pixel_height
    +end
    +
    +
    + + + +
    +

    + + #pixel_widthObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute pixel_width.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +40
    +41
    +42
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 40
    +
    +def pixel_width
    +  @pixel_width
    +end
    +
    +
    + + + +
    +

    + + #plot_heightObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute plot_height.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +45
    +46
    +47
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 45
    +
    +def plot_height
    +  @plot_height
    +end
    +
    +
    + + + +
    +

    + + #plot_widthObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute plot_width.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +44
    +45
    +46
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 44
    +
    +def plot_width
    +  @plot_width
    +end
    +
    +
    + + + +
    +

    + + #widthObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute width.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +38
    +39
    +40
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 38
    +
    +def width
    +  @width
    +end
    +
    +
    + + + +
    +

    + + #x_pixel_per_charObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute x_pixel_per_char.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +46
    +47
    +48
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 46
    +
    +def x_pixel_per_char
    +  @x_pixel_per_char
    +end
    +
    +
    + + + +
    +

    + + #y_pixel_per_charObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute y_pixel_per_char.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +47
    +48
    +49
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 47
    +
    +def y_pixel_per_char
    +  @y_pixel_per_char
    +end
    +
    +
    + +
    + + +
    +

    Class Method Details

    + + +
    +

    + + .create(canvas_type, width, height, **kw) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 7
    +
    +def self.create(canvas_type, width, height, **kw)
    +  canvas_class = CANVAS_CLASS_MAP[canvas_type]
    +  case canvas_class
    +  when Class
    +    canvas_class.new(width, height, **kw)
    +  else
    +    raise ArgumentError, "unknown canvas type: #{canvas_type}"
    +  end
    +end
    +
    +
    + +
    + +
    +

    Instance Method Details

    + + +
    +

    + + #char_at(x, y) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +71
    +72
    +73
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 71
    +
    +def char_at(x, y)
    +  @grid[index_at(x, y)]
    +end
    +
    +
    + +
    +

    + + #color_at(x, y) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +75
    +76
    +77
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 75
    +
    +def color_at(x, y)
    +  @colors[index_at(x, y)]
    +end
    +
    +
    + +
    +

    + + #index_at(x, y) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +79
    +80
    +81
    +82
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 79
    +
    +def index_at(x, y)
    +  return nil unless 0 <= x && x < width && 0 <= y && y < height
    +  y * width + x
    +end
    +
    +
    + +
    +

    + + #line!(x1, y1, x2, y2, color) ⇒ Object + + + + + +

    +
    +

    digital differential analyzer algorithm

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +112
    +113
    +114
    +115
    +116
    +117
    +118
    +119
    +120
    +121
    +122
    +123
    +124
    +125
    +126
    +127
    +128
    +129
    +130
    +131
    +132
    +133
    +134
    +135
    +136
    +137
    +138
    +139
    +140
    +141
    +142
    +143
    +144
    +145
    +146
    +147
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 112
    +
    +def line!(x1, y1, x2, y2, color)
    +  if (x1 < origin_x && x2 < origin_x) ||
    +      (x1 > origin_x + plot_width && x2 > origin_x + plot_width)
    +    return color
    +  end
    +  if (y1 < origin_y && y2 < origin_y) ||
    +      (y1 > origin_y + plot_height && y2 > origin_y + plot_height)
    +    return color
    +  end
    +
    +  toff = x1 - origin_x
    +  px1 = toff.fdiv(plot_width) * pixel_width
    +  toff = x2 - origin_x
    +  px2 = toff.fdiv(plot_width) * pixel_width
    +
    +  toff = y1 - origin_y
    +  py1 = pixel_height - toff.fdiv(plot_height) * pixel_height
    +  toff = y2 - origin_y
    +  py2 = pixel_height - toff.fdiv(plot_height) * pixel_height
    +
    +  dx = px2 - px1
    +  dy = py2 - py1
    +  nsteps = dx.abs > dy.abs ? dx.abs : dy.abs
    +  inc_x = dx.fdiv(nsteps)
    +  inc_y = dy.fdiv(nsteps)
    +
    +  cur_x = px1
    +  cur_y = py1
    +  pixel!(cur_x.floor, cur_y.floor, color)
    +  1.upto(nsteps) do |i|
    +    cur_x += inc_x
    +    cur_y += inc_y
    +    pixel!(cur_x.floor, cur_y.floor, color)
    +  end
    +  color
    +end
    +
    +
    + +
    +

    + + #lines!(x, y, color = :normal) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +149
    +150
    +151
    +152
    +153
    +154
    +155
    +156
    +157
    +158
    +159
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 149
    +
    +def lines!(x, y, color = :normal)
    +  if x.length != y.length
    +    raise ArgumentError, "x and y must be the same length"
    +  end
    +  unless x.length > 0
    +    raise ArgumentError, "x and y must not be empty"
    +  end
    +  (0 ... (x.length - 1)).each do |i|
    +    line!(x[i], y[i], x[i+1], y[i+1], color)
    +  end
    +end
    +
    +
    + +
    +

    + + #point!(x, y, color) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 84
    +
    +def point!(x, y, color)
    +  unless origin_x <= x && x <= origin_x + plot_width &&
    +         origin_y <= y && y <= origin_y + plot_height
    +    return color
    +  end
    +
    +  plot_offset_x = x - origin_x
    +  pixel_x = plot_offset_x.fdiv(plot_width) * pixel_width
    +
    +  plot_offset_y = y - origin_y
    +  pixel_y = pixel_height - plot_offset_y.fdiv(plot_height) * pixel_height
    +
    +  pixel!(pixel_x.floor, pixel_y.floor, color)
    +end
    +
    +
    + +
    +

    + + #points!(x, y, color = :normal) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 99
    +
    +def points!(x, y, color = :normal)
    +  if x.length != y.length
    +    raise ArgumentError, "x and y must be the same length"
    +  end
    +  unless x.length > 0
    +    raise ArgumentError, "x and y must not be empty"
    +  end
    +  (0 ... x.length).each do |i|
    +    point!(x[i], y[i], color)
    +  end
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +64
    +65
    +66
    +67
    +68
    +69
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 64
    +
    +def print(out)
    +  (0 ... height).each do |row_index|
    +    print_row(out, row_index)
    +    out.puts if row_index < height - 1
    +  end
    +end
    +
    +
    + +
    +

    + + #show(out) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +
    +
    # File 'src/lib/unicode_plot/canvas.rb', line 49
    +
    +def show(out)
    +  b = BorderMaps::BORDER_SOLID
    +  border_length = width
    +
    +  print_border_top(out, "", border_length, :solid, color: :light_black)
    +  out.puts
    +  (0 ... height).each do |row_index|
    +    print_styled(out, b[:l], color: :light_black)
    +    print_row(out, row_index)
    +    print_styled(out, b[:r], color: :light_black)
    +    out.puts
    +  end
    +  print_border_bottom(out, "", border_length, :solid, color: :light_black)
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/DensityCanvas.html b/0.0.5/UnicodePlot/DensityCanvas.html new file mode 100644 index 0000000..ca8fe45 --- /dev/null +++ b/0.0.5/UnicodePlot/DensityCanvas.html @@ -0,0 +1,467 @@ + + + + + + + Class: UnicodePlot::DensityCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::DensityCanvas + + + +

    +
    + +
    +
    Inherits:
    +
    + Canvas + +
      +
    • Object
    • + + + + + +
    + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/canvas/density_canvas.rb
    +
    + +
    + + + +

    + Constant Summary + collapse +

    + +
    + +
    DENSITY_SIGNS = + +
    +
    [" ", "", "", "", ""].freeze
    + +
    MIN_WIDTH = + +
    +
    5
    + +
    MIN_HEIGHT = + +
    +
    5
    + +
    X_PIXEL_PER_CHAR = + +
    +
    1
    + +
    Y_PIXEL_PER_CHAR = + +
    +
    2
    + +
    + + + + + + +

    Constants inherited + from Canvas

    +

    Canvas::CANVAS_CLASS_MAP

    + + + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + + + +

    Instance Attribute Summary

    + +

    Attributes inherited from Canvas

    +

    #height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods inherited from Canvas

    +

    #char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

    + + + + + + + + + +

    Methods included from BorderPrinter

    +

    #print_border_bottom, #print_border_top

    + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(width, height, **kw) ⇒ DensityCanvas + + + + + +

    +
    +

    Returns a new instance of DensityCanvas.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +
    +
    # File 'src/lib/unicode_plot/canvas/density_canvas.rb', line 13
    +
    +def initialize(width, height, **kw)
    +  width = [width, MIN_WIDTH].max
    +  height = [height, MIN_HEIGHT].max
    +  @max_density = 1
    +  super(width, height,
    +        width * X_PIXEL_PER_CHAR,
    +        height * Y_PIXEL_PER_CHAR,
    +        0,
    +        x_pixel_per_char: X_PIXEL_PER_CHAR,
    +        y_pixel_per_char: Y_PIXEL_PER_CHAR,
    +        **kw)
    +end
    +
    +
    + +
    + + +
    +

    Instance Method Details

    + + +
    +

    + + #pixel!(pixel_x, pixel_y, color) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +
    +
    # File 'src/lib/unicode_plot/canvas/density_canvas.rb', line 26
    +
    +def pixel!(pixel_x, pixel_y, color)
    +  unless 0 <= pixel_x && pixel_x <= pixel_width &&
    +         0 <= pixel_y && pixel_y <= pixel_height
    +    return color
    +  end
    +
    +  pixel_x -= 1 unless pixel_x < pixel_width
    +  pixel_y -= 1 unless pixel_y < pixel_height
    +
    +  char_x = (pixel_x.fdiv(pixel_width) * width).floor
    +  char_y = (pixel_y.fdiv(pixel_height) * height).floor
    +
    +  index = index_at(char_x, char_y)
    +  @grid[index] += 1
    +  @max_density = [@max_density, @grid[index]].max
    +  @colors[index] |= COLOR_ENCODE[color]
    +  color
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +
    +
    # File 'src/lib/unicode_plot/canvas/density_canvas.rb', line 45
    +
    +def print_row(out, row_index)
    +  unless 0 <= row_index && row_index < height
    +    raise ArgumentError, "row_index out of bounds"
    +  end
    +  y = row_index
    +  den_sign_count = DENSITY_SIGNS.length
    +  val_scale = (den_sign_count - 1).fdiv(@max_density)
    +  (0 ... width).each do |x|
    +    den_index = (char_at(x, y) * val_scale).round
    +    print_color(out, color_at(x, y), DENSITY_SIGNS[den_index])
    +  end
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/DotCanvas.html b/0.0.5/UnicodePlot/DotCanvas.html new file mode 100644 index 0000000..ae67aa4 --- /dev/null +++ b/0.0.5/UnicodePlot/DotCanvas.html @@ -0,0 +1,423 @@ + + + + + + + Class: UnicodePlot::DotCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::DotCanvas + + + +

    +
    + +
    +
    Inherits:
    +
    + LookupCanvas + + + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/canvas/dot_canvas.rb
    +
    + +
    + + + +

    + Constant Summary + collapse +

    + +
    + +
    DOT_SIGNS = + +
    +
    [
    +  [
    +    0b10,
    +    0b01
    +  ].freeze
    +].freeze
    + +
    DOT_DECODE = + +
    +
    [
    +  -' ', # 0b00
    +  -'.', # 0b01
    +  -"'", # 0b10
    +  -':', # 0b11
    +].freeze
    + +
    X_PIXEL_PER_CHAR = + +
    +
    1
    + +
    Y_PIXEL_PER_CHAR = + +
    +
    2
    + +
    + + + + + + +

    Constants inherited + from Canvas

    +

    Canvas::CANVAS_CLASS_MAP

    + + + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + + + +

    Instance Attribute Summary

    + +

    Attributes inherited from Canvas

    +

    #height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods inherited from LookupCanvas

    +

    #pixel!, #print_row

    + + + + + + + + + +

    Methods inherited from Canvas

    +

    #char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

    + + + + + + + + + +

    Methods included from BorderPrinter

    +

    #print_border_bottom, #print_border_top

    + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(width, height, **kw) ⇒ DotCanvas + + + + + +

    +
    +

    Returns a new instance of DotCanvas.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +22
    +23
    +24
    +25
    +26
    +
    +
    # File 'src/lib/unicode_plot/canvas/dot_canvas.rb', line 22
    +
    +def initialize(width, height, **kw)
    +  super(width, height,
    +        X_PIXEL_PER_CHAR, Y_PIXEL_PER_CHAR,
    +        **kw)
    +end
    +
    +
    + +
    + + +
    +

    Instance Method Details

    + + +
    +

    + + #lookup_decode(code) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +32
    +33
    +34
    +
    +
    # File 'src/lib/unicode_plot/canvas/dot_canvas.rb', line 32
    +
    +def lookup_decode(code)
    +  DOT_DECODE[code]
    +end
    +
    +
    + +
    +

    + + #lookup_encode(x, y) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +28
    +29
    +30
    +
    +
    # File 'src/lib/unicode_plot/canvas/dot_canvas.rb', line 28
    +
    +def lookup_encode(x, y)
    +  DOT_SIGNS[x][y]
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/GridPlot.html b/0.0.5/UnicodePlot/GridPlot.html new file mode 100644 index 0000000..7ac75e2 --- /dev/null +++ b/0.0.5/UnicodePlot/GridPlot.html @@ -0,0 +1,861 @@ + + + + + + + Class: UnicodePlot::GridPlot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::GridPlot + + + +

    +
    + +
    +
    Inherits:
    +
    + Plot + +
      +
    • Object
    • + + + + + +
    + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/grid_plot.rb
    +
    + +
    + +
    +

    Direct Known Subclasses

    +

    Lineplot, Scatterplot

    +
    + + +

    + Constant Summary + collapse +

    + +
    + +
    MIN_WIDTH = + +
    +
    5
    + +
    MIN_HEIGHT = + +
    +
    2
    + +
    DEFAULT_HEIGHT = + +
    +
    15
    + +
    + + + + + + +

    Constants inherited + from Plot

    +

    Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING, Plot::DEFAULT_WIDTH

    + + + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + + + +

    Instance Attribute Summary

    + +

    Attributes inherited from Plot

    +

    #border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods inherited from Plot

    +

    #annotate!, #annotate_row!, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

    + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(x, y, canvas, width: DEFAULT_WIDTH, height: DEFAULT_HEIGHT, xlim: [0, 0], ylim: [0, 0], grid: true, **kw) ⇒ GridPlot + + + + + +

    +
    +

    Returns a new instance of GridPlot.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +
    +
    # File 'src/lib/unicode_plot/grid_plot.rb', line 7
    +
    +def initialize(x, y, canvas,
    +               width: DEFAULT_WIDTH,
    +               height: DEFAULT_HEIGHT,
    +               xlim: [0, 0], 
    +               ylim: [0, 0],
    +               grid: true,
    +               **kw)
    +  if x.length != y.length
    +    raise ArgumentError, "x and y must be the same length"
    +  end
    +  unless x.length > 0
    +    raise ArgumentError, "x and y must not be empty"
    +  end
    +  unless xlim.length == 2 && ylim.length == 2
    +    raise ArgumentError, "xlim and ylim must be 2-length arrays"
    +  end
    +  width = [width, MIN_WIDTH].max
    +  height = [height, MIN_HEIGHT].max
    +  min_x, max_x = Utils.extend_limits(x, xlim)
    +  min_y, max_y = Utils.extend_limits(y, ylim)
    +  origin_x = min_x
    +  origin_y = min_y
    +  plot_width = max_x - origin_x
    +  plot_height = max_y - origin_y
    +  @canvas = Canvas.create(canvas, width, height,
    +                          origin_x: origin_x,
    +                          origin_y: origin_y,
    +                          plot_width: plot_width,
    +                          plot_height: plot_height)
    +  super(**kw)
    +
    +  min_x_str = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s
    +  max_x_str = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s
    +  min_y_str = (Utils.roundable?(min_y) ? min_y.round : min_y).to_s
    +  max_y_str = (Utils.roundable?(max_y) ? max_y.round : max_y).to_s
    +
    +  annotate_row!(:l, 0, max_y_str, color: :light_black)
    +  annotate_row!(:l, height-1, min_y_str, color: :light_black)
    +  annotate!(:bl, min_x_str, color: :light_black)
    +  annotate!(:br, max_x_str, color: :light_black)
    +
    +  if grid
    +    if min_y < 0 && 0 < max_y
    +      step = plot_width.fdiv(width * @canvas.x_pixel_per_char - 1)
    +      min_x.step(max_x, by: step) do |i|
    +        @canvas.point!(i, 0, :normal)
    +      end
    +    end
    +    if min_x < 0 && 0 < max_x
    +      step = plot_height.fdiv(height * @canvas.y_pixel_per_char - 1)
    +      min_y.step(max_y, by: step) do |i|
    +        @canvas.point!(0, i, :normal)
    +      end
    +    end
    +  end
    +end
    +
    +
    + +
    + + +
    +

    Instance Method Details

    + + +
    +

    + + #lines!(x, y, color) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +92
    +93
    +94
    +
    +
    # File 'src/lib/unicode_plot/grid_plot.rb', line 92
    +
    +def lines!(x, y, color)
    +  @canvas.lines!(x, y, color)
    +end
    +
    +
    + +
    +

    + + #n_columnsObject + + + + + +

    + + + + +
    +
    +
    +
    +84
    +85
    +86
    +
    +
    # File 'src/lib/unicode_plot/grid_plot.rb', line 84
    +
    +def n_columns
    +  @canvas.width
    +end
    +
    +
    + +
    +

    + + #n_rowsObject + + + + + +

    + + + + +
    +
    +
    +
    +80
    +81
    +82
    +
    +
    # File 'src/lib/unicode_plot/grid_plot.rb', line 80
    +
    +def n_rows
    +  @canvas.height
    +end
    +
    +
    + +
    +

    + + #origin_xObject + + + + + +

    + + + + +
    +
    +
    +
    +64
    +65
    +66
    +
    +
    # File 'src/lib/unicode_plot/grid_plot.rb', line 64
    +
    +def origin_x
    +  @canvas.origin_x
    +end
    +
    +
    + +
    +

    + + #origin_yObject + + + + + +

    + + + + +
    +
    +
    +
    +68
    +69
    +70
    +
    +
    # File 'src/lib/unicode_plot/grid_plot.rb', line 68
    +
    +def origin_y
    +  @canvas.origin_y
    +end
    +
    +
    + +
    +

    + + #plot_heightObject + + + + + +

    + + + + +
    +
    +
    +
    +76
    +77
    +78
    +
    +
    # File 'src/lib/unicode_plot/grid_plot.rb', line 76
    +
    +def plot_height
    +  @canvas.plot_height
    +end
    +
    +
    + +
    +

    + + #plot_widthObject + + + + + +

    + + + + +
    +
    +
    +
    +72
    +73
    +74
    +
    +
    # File 'src/lib/unicode_plot/grid_plot.rb', line 72
    +
    +def plot_width
    +  @canvas.plot_width
    +end
    +
    +
    + +
    +

    + + #points!(x, y, color) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +88
    +89
    +90
    +
    +
    # File 'src/lib/unicode_plot/grid_plot.rb', line 88
    +
    +def points!(x, y, color)
    +  @canvas.points!(x, y, color)
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +96
    +97
    +98
    +
    +
    # File 'src/lib/unicode_plot/grid_plot.rb', line 96
    +
    +def print_row(out, row_index)
    +  @canvas.print_row(out, row_index)
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/IOContext.html b/0.0.5/UnicodePlot/IOContext.html new file mode 100644 index 0000000..3d6a7ff --- /dev/null +++ b/0.0.5/UnicodePlot/IOContext.html @@ -0,0 +1,301 @@ + + + + + + + Class: UnicodePlot::IOContext + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::IOContext + + + +

    +
    + +
    +
    Inherits:
    +
    + Object + +
      +
    • Object
    • + + + +
    + show all + +
    +
    + + + + +
    +
    Extended by:
    +
    Forwardable
    +
    + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/io_context.rb
    +
    + +
    + + + + + + + + + +

    + Instance Method Summary + collapse +

    + + + + + +
    +

    Constructor Details

    + +
    +

    + + #initialize(io, color: :auto) ⇒ IOContext + + + + + +

    +
    +

    Returns a new instance of IOContext.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +7
    +8
    +9
    +10
    +
    +
    # File 'src/lib/unicode_plot/io_context.rb', line 7
    +
    +def initialize(io, color: :auto)
    +  @io = io
    +  @color = check_color(color)
    +end
    +
    +
    + +
    + + +
    +

    Instance Method Details

    + + +
    +

    + + #color?Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +
    +
    # File 'src/lib/unicode_plot/io_context.rb', line 14
    +
    +def color?
    +  case @color
    +  when :auto
    +    @io.respond_to?(:tty?) ? @io.tty? : false
    +  else
    +    @color
    +  end
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/Lineplot.html b/0.0.5/UnicodePlot/Lineplot.html new file mode 100644 index 0000000..0982f0f --- /dev/null +++ b/0.0.5/UnicodePlot/Lineplot.html @@ -0,0 +1,187 @@ + + + + + + + Class: UnicodePlot::Lineplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::Lineplot + + + +

    +
    + +
    +
    Inherits:
    +
    + GridPlot + +
      +
    • Object
    • + + + + + + + +
    + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/lineplot.rb
    +
    + +
    + + + + +

    Constant Summary

    + +

    Constants inherited + from GridPlot

    +

    GridPlot::DEFAULT_HEIGHT, GridPlot::MIN_HEIGHT, GridPlot::MIN_WIDTH

    + + + +

    Constants inherited + from Plot

    +

    Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING, Plot::DEFAULT_WIDTH

    + + + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + + + +

    Instance Attribute Summary

    + +

    Attributes inherited from Plot

    +

    #border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

    + + + + + + + + + +

    Method Summary

    + +

    Methods inherited from GridPlot

    +

    #initialize, #lines!, #n_columns, #n_rows, #origin_x, #origin_y, #plot_height, #plot_width, #points!, #print_row

    + + + + + + + + + +

    Methods inherited from Plot

    +

    #annotate!, #annotate_row!, #initialize, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

    + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +

    This class inherits a constructor from UnicodePlot::GridPlot

    + +
    + + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/LookupCanvas.html b/0.0.5/UnicodePlot/LookupCanvas.html new file mode 100644 index 0000000..970c3f7 --- /dev/null +++ b/0.0.5/UnicodePlot/LookupCanvas.html @@ -0,0 +1,431 @@ + + + + + + + Class: UnicodePlot::LookupCanvas + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::LookupCanvas + + + +

    +
    + +
    +
    Inherits:
    +
    + Canvas + +
      +
    • Object
    • + + + + + +
    + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/canvas/lookup_canvas.rb
    +
    + +
    + +
    +

    Direct Known Subclasses

    +

    AsciiCanvas, BlockCanvas, DotCanvas

    +
    + + + +

    Constant Summary

    + +

    Constants inherited + from Canvas

    +

    Canvas::CANVAS_CLASS_MAP

    + + + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + + + +

    Instance Attribute Summary

    + +

    Attributes inherited from Canvas

    +

    #height, #origin_x, #origin_y, #pixel_height, #pixel_width, #plot_height, #plot_width, #width, #x_pixel_per_char, #y_pixel_per_char

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods inherited from Canvas

    +

    #char_at, #color_at, create, #index_at, #line!, #lines!, #point!, #points!, #print, #show

    + + + + + + + + + +

    Methods included from BorderPrinter

    +

    #print_border_bottom, #print_border_top

    + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(width, height, x_pixel_per_char, y_pixel_per_char, fill_char = 0, **kw) ⇒ LookupCanvas + + + + + +

    +
    +

    Returns a new instance of LookupCanvas.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +
    +
    # File 'src/lib/unicode_plot/canvas/lookup_canvas.rb', line 3
    +
    +def initialize(width, height, x_pixel_per_char, y_pixel_per_char, fill_char=0, **kw)
    +  super(width, height,
    +        width * x_pixel_per_char,
    +        height * y_pixel_per_char,
    +        fill_char,
    +        x_pixel_per_char: x_pixel_per_char,
    +        y_pixel_per_char: y_pixel_per_char,
    +        **kw)
    +end
    +
    +
    + +
    + + +
    +

    Instance Method Details

    + + +
    +

    + + #pixel!(pixel_x, pixel_y, color) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +
    +
    # File 'src/lib/unicode_plot/canvas/lookup_canvas.rb', line 13
    +
    +def pixel!(pixel_x, pixel_y, color)
    +  unless 0 <= pixel_x && pixel_x <= pixel_width &&
    +         0 <= pixel_y && pixel_y <= pixel_height
    +    return color
    +  end
    +  pixel_x -= 1 unless pixel_x < pixel_width
    +  pixel_y -= 1 unless pixel_y < pixel_height
    +
    +  tx = pixel_x.fdiv(pixel_width) * width
    +  char_x = tx.floor + 1
    +  char_x_off = pixel_x % x_pixel_per_char + 1
    +  char_x += 1 if char_x < tx.round + 1 && char_x_off == 1
    +
    +  char_y_off = pixel_y % y_pixel_per_char + 1
    +  char_y = ((pixel_y - (char_y_off - 1)) / y_pixel_per_char) + 1
    +
    +  index = index_at(char_x - 1, char_y - 1)
    +  if index
    +    @grid[index] |= lookup_encode(char_x_off - 1, char_y_off - 1)
    +    @colors[index] |= COLOR_ENCODE[color]
    +  end
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +
    +
    # File 'src/lib/unicode_plot/canvas/lookup_canvas.rb', line 36
    +
    +def print_row(out, row_index)
    +  unless 0 <= row_index && row_index < height
    +    raise ArgumentError, "row_index out of bounds"
    +  end
    +  y = row_index
    +  (0 ... width).each do |x|
    +    print_color(out, color_at(x, y), lookup_decode(char_at(x, y)))
    +  end
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/NumericStemplot.html b/0.0.5/UnicodePlot/NumericStemplot.html new file mode 100644 index 0000000..74e3ca6 --- /dev/null +++ b/0.0.5/UnicodePlot/NumericStemplot.html @@ -0,0 +1,500 @@ + + + + + + + Class: UnicodePlot::NumericStemplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::NumericStemplot + + + +

    +
    + +
    +
    Inherits:
    +
    + Stemplot + +
      +
    • Object
    • + + + + + +
    + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/stemplot.rb
    +
    + +
    + + + + + + + + + +

    + Class Method Summary + collapse +

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods inherited from Stemplot

    +

    factory, #insert, #leaves, #max_stem_length, #raw_stems, #stems

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(vector, scale: 10, **kw) ⇒ NumericStemplot + + + + + +

    +
    +

    Returns a new instance of NumericStemplot.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +138
    +139
    +140
    +141
    +142
    +143
    +144
    +145
    +146
    +147
    +148
    +149
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 138
    +
    +def initialize(vector, scale: 10, **kw)
    +  super
    +  Array(vector).each do |value|
    +    fvalue = value.to_f.fdiv(scale/10.0)
    +    stemnum = (fvalue/10).to_i
    +    leafnum = (fvalue - (stemnum*10)).to_i
    +    stemsign = value.negative? ? "-" : ''
    +    stem = stemsign + stemnum.abs.to_s
    +    leaf = leafnum.abs.to_s
    +    self.insert(stem, leaf)
    +  end
    +end
    +
    +
    + +
    + + +
    +

    Class Method Details

    + + +
    +

    + + .sorted_stem_list(stems, all: true) ⇒ Array + + + + + +

    +
    +

    Used when we have stems from a back-to-back stemplot and a combined list of stems is given

    + + +
    +
    +
    +

    Parameters:

    +
      + +
    • + + stems + + + (Array) + + + + — +

      Concatenated list of stems from two plots

      +
      + +
    • + +
    • + + all + + + (Boolean) + + + (defaults to: true) + + + — +

      Return all stems if true, otherwise only return stems if a leaf exists for a stem

      +
      + +
    • + +
    + +

    Returns:

    +
      + +
    • + + + (Array) + + + + — +

      Sorted list of stems

      +
      + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +168
    +169
    +170
    +171
    +172
    +173
    +174
    +175
    +176
    +177
    +178
    +179
    +180
    +181
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 168
    +
    +def self.sorted_stem_list(stems, all: true)
    +  negkeys, poskeys = stems.partition { |str| str[0] == '-'}
    +  if all
    +    negmin, negmax = negkeys.map(&:to_i).map(&:abs).minmax
    +    posmin, posmax = poskeys.map(&:to_i).minmax
    +    negrange = negmin ? (negmin..negmax).to_a.reverse.map { |s| "-"+s.to_s } : []
    +    posrange = posmin ? (posmin..posmax).to_a.map(&:to_s) : []
    +    return negrange + posrange
    +  else
    +    negkeys.sort! { |a,b| a.to_i <=> b.to_i }
    +    poskeys.sort! { |a,b| a.to_i <=> b.to_i }
    +    return negkeys + poskeys
    +  end
    +end
    +
    +
    + +
    + +
    +

    Instance Method Details

    + + +
    +
    +
    +

    Print key to STDOUT

    + + +
    +
    +
    +

    Parameters:

    +
      + +
    • + + scale + + + (Integer) + + + + — +

      Scale, should be a power of 10

      +
      + +
    • + +
    • + + divider + + + (String) + + + + — +

      Divider character between stem and leaf

      +
      + +
    • + +
    + + +
    + + + + +
    +
    +
    +
    +154
    +155
    +156
    +157
    +158
    +159
    +160
    +161
    +162
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 154
    +
    +def print_key(scale, divider)
    +  # First print the key
    +  puts "Key: 1#{divider}0 = #{scale}"
    +  # Description of where the decimal is
    +  trunclog = Math.log10(scale).truncate
    +  ndigits = trunclog.abs
    +  right_or_left = (trunclog < 0) ? "left" : "right"
    +  puts "The decimal is #{ndigits} digit(s) to the #{right_or_left} of #{divider}"
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/Plot.html b/0.0.5/UnicodePlot/Plot.html new file mode 100644 index 0000000..65735cb --- /dev/null +++ b/0.0.5/UnicodePlot/Plot.html @@ -0,0 +1,1862 @@ + + + + + + + Class: UnicodePlot::Plot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::Plot + + + +

    +
    + +
    +
    Inherits:
    +
    + Object + +
      +
    • Object
    • + + + +
    + show all + +
    +
    + + + + + + +
    +
    Includes:
    +
    StyledPrinter
    +
    + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/plot.rb
    +
    + +
    + +
    +

    Direct Known Subclasses

    +

    Barplot, Boxplot, GridPlot

    +
    + + +

    + Constant Summary + collapse +

    + +
    + +
    DEFAULT_WIDTH = + +
    +
    40
    + +
    DEFAULT_BORDER = + +
    +
    :solid
    + +
    DEFAULT_MARGIN = + +
    +
    3
    + +
    DEFAULT_PADDING = + +
    +
    1
    + +
    COLOR_CYCLE = + +
    +
    [
    +  :green,
    +  :blue,
    +  :red,
    +  :magenta,
    +  :yellow,
    +  :cyan
    +].freeze
    + +
    + + + + + + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + +

    Instance Attribute Summary collapse

    +
      + +
    • + + + #border ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute border.

      +
      + +
    • + + +
    • + + + #colors_deco ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute colors_deco.

      +
      + +
    • + + +
    • + + + #colors_left ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute colors_left.

      +
      + +
    • + + +
    • + + + #colors_right ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute colors_right.

      +
      + +
    • + + +
    • + + + #decorations ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute decorations.

      +
      + +
    • + + +
    • + + + #labels_left ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute labels_left.

      +
      + +
    • + + +
    • + + + #labels_right ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute labels_right.

      +
      + +
    • + + +
    • + + + #margin ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute margin.

      +
      + +
    • + + +
    • + + + #padding ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute padding.

      +
      + +
    • + + +
    • + + + #title ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute title.

      +
      + +
    • + + +
    • + + + #xlabel ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute xlabel.

      +
      + +
    • + + +
    • + + + #ylabel ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute ylabel.

      +
      + +
    • + + +
    + + + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(title: nil, xlabel: nil, ylabel: nil, border: DEFAULT_BORDER, margin: DEFAULT_MARGIN, padding: DEFAULT_PADDING, labels: true) ⇒ Plot + + + + + +

    +
    +

    Returns a new instance of Plot.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 10
    +
    +def initialize(title: nil,
    +               xlabel: nil,
    +               ylabel: nil,
    +               border: DEFAULT_BORDER,
    +               margin: DEFAULT_MARGIN,
    +               padding: DEFAULT_PADDING,
    +               labels: true)
    +  @title = title
    +  @xlabel = xlabel
    +  @ylabel = ylabel
    +  @border = check_border(border)
    +  @margin = check_margin(margin)
    +  @padding = padding
    +  @labels_left = {}
    +  @colors_left = {}
    +  @labels_right = {}
    +  @colors_right = {}
    +  @decorations = {}
    +  @colors_deco = {}
    +  @show_labels = labels
    +  @auto_color = 0
    +end
    +
    +
    + +
    + +
    +

    Instance Attribute Details

    + + + +
    +

    + + #borderObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute border.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +36
    +37
    +38
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 36
    +
    +def border
    +  @border
    +end
    +
    +
    + + + +
    +

    + + #colors_decoObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute colors_deco.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +44
    +45
    +46
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 44
    +
    +def colors_deco
    +  @colors_deco
    +end
    +
    +
    + + + +
    +

    + + #colors_leftObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute colors_left.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +40
    +41
    +42
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 40
    +
    +def colors_left
    +  @colors_left
    +end
    +
    +
    + + + +
    +

    + + #colors_rightObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute colors_right.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +42
    +43
    +44
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 42
    +
    +def colors_right
    +  @colors_right
    +end
    +
    +
    + + + +
    +

    + + #decorationsObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute decorations.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +43
    +44
    +45
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 43
    +
    +def decorations
    +  @decorations
    +end
    +
    +
    + + + +
    +

    + + #labels_leftObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute labels_left.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +39
    +40
    +41
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 39
    +
    +def labels_left
    +  @labels_left
    +end
    +
    +
    + + + +
    +

    + + #labels_rightObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute labels_right.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +41
    +42
    +43
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 41
    +
    +def labels_right
    +  @labels_right
    +end
    +
    +
    + + + +
    +

    + + #marginObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute margin.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +37
    +38
    +39
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 37
    +
    +def margin
    +  @margin
    +end
    +
    +
    + + + +
    +

    + + #paddingObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute padding.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +38
    +39
    +40
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 38
    +
    +def padding
    +  @padding
    +end
    +
    +
    + + + +
    +

    + + #titleObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute title.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +33
    +34
    +35
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 33
    +
    +def title
    +  @title
    +end
    +
    +
    + + + +
    +

    + + #xlabelObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute xlabel.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +34
    +35
    +36
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 34
    +
    +def xlabel
    +  @xlabel
    +end
    +
    +
    + + + +
    +

    + + #ylabelObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute ylabel.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +35
    +36
    +37
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 35
    +
    +def ylabel
    +  @ylabel
    +end
    +
    +
    + +
    + + +
    +

    Instance Method Details

    + + +
    +

    + + #annotate!(loc, value, color: :normal) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 66
    +
    +def annotate!(loc, value, color: :normal)
    +  case loc
    +  when :l
    +    (0 ... n_rows).each do |row|
    +      if @labels_left.fetch(row, "") == ""
    +        @labels_left[row] = value
    +        @colors_left[row] = color
    +        break
    +      end
    +    end
    +  when :r
    +    (0 ... n_rows).each do |row|
    +      if @labels_right.fetch(row, "") == ""
    +        @labels_right[row] = value
    +        @colors_right[row] = color
    +        break
    +      end
    +    end
    +  when :t, :b, :tl, :tr, :bl, :br
    +    @decorations[loc] = value
    +    @colors_deco[loc] = color
    +  else
    +    raise ArgumentError,
    +      "unknown location to annotate (#{loc.inspect} for :t, :b, :l, :r, :tl, :tr, :bl, or :br)"
    +  end
    +end
    +
    +
    + +
    +

    + + #annotate_row!(loc, row_index, value, color: :normal) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 93
    +
    +def annotate_row!(loc, row_index, value, color: :normal)
    +  case loc
    +  when :l
    +    @labels_left[row_index] = value
    +    @colors_left[row_index] = color
    +  when :r
    +    @labels_right[row_index] = value
    +    @colors_right[row_index] = color
    +  else
    +    raise ArgumentError, "unknown location `#{loc}`, try :l or :r instead"
    +  end
    +end
    +
    +
    + +
    +

    + + #next_colorObject + + + + + +

    + + + + +
    +
    +
    +
    +119
    +120
    +121
    +122
    +123
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 119
    +
    +def next_color
    +  COLOR_CYCLE[@auto_color]
    +ensure
    +  @auto_color = (@auto_color + 1) % COLOR_CYCLE.length
    +end
    +
    +
    + +
    +

    + + #render(out = $stdout, newline: true, color: :auto) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +106
    +107
    +108
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 106
    +
    +def render(out=$stdout, newline: true, color: :auto)
    +  Renderer.render(IOContext.new(out, color: color), self, newline)
    +end
    +
    +
    + +
    +

    + + #show_labels?Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +62
    +63
    +64
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 62
    +
    +def show_labels?
    +  @show_labels
    +end
    +
    +
    + +
    +

    + + #title_given?Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +46
    +47
    +48
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 46
    +
    +def title_given?
    +  title && title != ""
    +end
    +
    +
    + +
    +

    + + #to_sObject + + + + + +

    + + + + +
    +
    +
    +
    +125
    +126
    +127
    +128
    +129
    +130
    +131
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 125
    +
    +def to_s
    +  StringIO.open do |sio|
    +    render(sio, newline: false)
    +    sio.close
    +    sio.string
    +  end
    +end
    +
    +
    + +
    +

    + + #xlabel_given?Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +50
    +51
    +52
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 50
    +
    +def xlabel_given?
    +  xlabel && xlabel != ""
    +end
    +
    +
    + +
    +

    + + #ylabel_given?Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +54
    +55
    +56
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 54
    +
    +def ylabel_given?
    +  ylabel && ylabel != ""
    +end
    +
    +
    + +
    +

    + + #ylabel_lengthObject + + + + + +

    + + + + +
    +
    +
    +
    +58
    +59
    +60
    +
    +
    # File 'src/lib/unicode_plot/plot.rb', line 58
    +
    +def ylabel_length
    +  ylabel&.length || 0
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/Renderer.html b/0.0.5/UnicodePlot/Renderer.html new file mode 100644 index 0000000..634d2e1 --- /dev/null +++ b/0.0.5/UnicodePlot/Renderer.html @@ -0,0 +1,525 @@ + + + + + + + Class: UnicodePlot::Renderer + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::Renderer + + + +

    +
    + +
    +
    Inherits:
    +
    + Object + +
      +
    • Object
    • + + + +
    + show all + +
    +
    + + + + + + +
    +
    Includes:
    +
    BorderPrinter
    +
    + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/renderer.rb
    +
    + +
    + + + + +

    Constant Summary

    + +

    Constants included + from StyledPrinter

    +

    StyledPrinter::COLOR_DECODE, StyledPrinter::COLOR_ENCODE, StyledPrinter::DISABLE_TEXT_STYLE, StyledPrinter::TEXT_COLORS

    + + +

    Instance Attribute Summary collapse

    +
      + +
    • + + + #out ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute out.

      +
      + +
    • + + +
    • + + + #plot ⇒ Object + + + + + + + + + readonly + + + + + + + + + +

      Returns the value of attribute plot.

      +
      + +
    • + + +
    + + + + + +

    + Class Method Summary + collapse +

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods included from BorderPrinter

    +

    #print_border_bottom, #print_border_top

    + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(plot) ⇒ Renderer + + + + + +

    +
    +

    Returns a new instance of Renderer.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +70
    +71
    +72
    +73
    +
    +
    # File 'src/lib/unicode_plot/renderer.rb', line 70
    +
    +def initialize(plot)
    +  @plot = plot
    +  @out = nil
    +end
    +
    +
    + +
    + +
    +

    Instance Attribute Details

    + + + +
    +

    + + #outObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute out.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +76
    +77
    +78
    +
    +
    # File 'src/lib/unicode_plot/renderer.rb', line 76
    +
    +def out
    +  @out
    +end
    +
    +
    + + + +
    +

    + + #plotObject (readonly) + + + + + +

    +
    +

    Returns the value of attribute plot.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +75
    +76
    +77
    +
    +
    # File 'src/lib/unicode_plot/renderer.rb', line 75
    +
    +def plot
    +  @plot
    +end
    +
    +
    + +
    + + +
    +

    Class Method Details

    + + +
    +

    + + .render(out, plot, newline) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +66
    +67
    +68
    +
    +
    # File 'src/lib/unicode_plot/renderer.rb', line 66
    +
    +def self.render(out, plot, newline)
    +  new(plot).render(out, newline)
    +end
    +
    +
    + +
    + +
    +

    Instance Method Details

    + + +
    +

    + + #render(out, newline) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +
    +
    # File 'src/lib/unicode_plot/renderer.rb', line 78
    +
    +def render(out, newline)
    +  @out = out
    +  init_render
    +
    +  render_top
    +  render_rows
    +  render_bottom
    +  out.puts if newline
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/Scatterplot.html b/0.0.5/UnicodePlot/Scatterplot.html new file mode 100644 index 0000000..fca72de --- /dev/null +++ b/0.0.5/UnicodePlot/Scatterplot.html @@ -0,0 +1,187 @@ + + + + + + + Class: UnicodePlot::Scatterplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::Scatterplot + + + +

    +
    + +
    +
    Inherits:
    +
    + GridPlot + +
      +
    • Object
    • + + + + + + + +
    + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/scatterplot.rb
    +
    + +
    + + + + +

    Constant Summary

    + +

    Constants inherited + from GridPlot

    +

    GridPlot::DEFAULT_HEIGHT, GridPlot::MIN_HEIGHT, GridPlot::MIN_WIDTH

    + + + +

    Constants inherited + from Plot

    +

    Plot::COLOR_CYCLE, Plot::DEFAULT_BORDER, Plot::DEFAULT_MARGIN, Plot::DEFAULT_PADDING, Plot::DEFAULT_WIDTH

    + + + +

    Constants included + from StyledPrinter

    +

    UnicodePlot::StyledPrinter::COLOR_DECODE, UnicodePlot::StyledPrinter::COLOR_ENCODE, UnicodePlot::StyledPrinter::DISABLE_TEXT_STYLE, UnicodePlot::StyledPrinter::TEXT_COLORS

    + + + + +

    Instance Attribute Summary

    + +

    Attributes inherited from Plot

    +

    #border, #colors_deco, #colors_left, #colors_right, #decorations, #labels_left, #labels_right, #margin, #padding, #title, #xlabel, #ylabel

    + + + + + + + + + +

    Method Summary

    + +

    Methods inherited from GridPlot

    +

    #initialize, #lines!, #n_columns, #n_rows, #origin_x, #origin_y, #plot_height, #plot_width, #points!, #print_row

    + + + + + + + + + +

    Methods inherited from Plot

    +

    #annotate!, #annotate_row!, #initialize, #next_color, #render, #show_labels?, #title_given?, #to_s, #xlabel_given?, #ylabel_given?, #ylabel_length

    + + + + + + + + + +

    Methods included from StyledPrinter

    +

    #print_color, #print_styled

    +
    +

    Constructor Details

    + +

    This class inherits a constructor from UnicodePlot::GridPlot

    + +
    + + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/Stemplot.html b/0.0.5/UnicodePlot/Stemplot.html new file mode 100644 index 0000000..114712e --- /dev/null +++ b/0.0.5/UnicodePlot/Stemplot.html @@ -0,0 +1,879 @@ + + + + + + + Class: UnicodePlot::Stemplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::Stemplot + + + +

    +
    + +
    +
    Inherits:
    +
    + Object + +
      +
    • Object
    • + + + +
    + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/stemplot.rb
    +
    + +
    + +

    Overview

    +
    +

    Description

    + +

    Draw a stem-leaf plot of the given vector +vec+.

    + +
    stemplot(vec, **kwargs)
    +
    + +

    Draw a back-to-back stem-leaf plot of the given vectors +vec1+ and +vec2+.

    + +
    stemplot(vec1, vec2, **kwargs)
    +
    + +

    The vectors can be any object that converts to an Array, e.g. an Array, Range, etc.
    +If all elements of the vector are Numeric, the stem-leaf plot is classified as a
    +NumericStemplot, otherwise it is classified as a StringStemplot. Back-to-back
    +stem-leaf plots must be the same type, i.e. String and Numeric stem-leaf plots cannot
    +be mixed in a back-to-back plot.

    + +

    Usage

    + +
    stemplot(vec, [vec2], scale:, divider:, padchar:, trim: )
    +
    + +

    Arguments

    + +
      +
    • +vec+: Vector for which the stem leaf plot should be computed.
    • +
    • +vec2+: Optional secondary vector, will be used to create a back-to-back stem-leaf plot.
    • +
    • +scale+: Set scale of plot. Default = 10. Scale is changed via orders of magnitude. Common values are 0.1, 1, and 10. For String stems, the default value of 10 is a one character stem, 100 is a two character stem.
    • +
    • + + + + + + + +
      +divider+: Character for break between stem and leaf. Default = “
      +
    • +
    • +padchar+: Character(s) to separate stems, leaves and dividers. Default = “ “
    • +
    • +trim+: Trims the stem labels when there are no leaves. This can be useful if your data is sparse. Default = +false+
    • +
    • +string_padchar+: Character used to replace missing position for input strings shorter than the stem-size. Default = “_”
    • +
    + +

    Result

    +

    A plot of object type is sent to $stdout

    + + +
    +
    +
    + +
    +

    Examples:

    + + +

    Examples using Numbers

    +

    + +
    # Generate some numbers
    +fifty_floats = 50.times.map { rand(-1000..1000)/350.0 }
    +eighty_ints = 80.times.map { rand(1..100) }
    +another_eighty_ints = 80.times.map { rand(1..100) }
    +three_hundred_ints = 300.times.map { rand(-100..100) }
    +
    +# Single sided stem-plot 
    +UnicodePlot.stemplot(eighty_ints)
    +
    +# Single sided stem-plot with positive and negative values
    +UnicodePlot.stemplot(three_hundred_ints)
    +
    +# Single sided stem-plot using floating point values, scaled
    +UnicodePlot.stemplot(fifty_floats, scale: 1)
    +
    +# Single sided stem-plot using floating point values, scaled with new divider
    +UnicodePlot.stemplot(fifty_floats, scale: 1, divider: "😄")
    +
    +# Back to back stem-plot 
    +UnicodePlot.stemplot(eighty_ints, another_eighty_ints)
    + + +

    Examples using Strings

    +

    + +
    # Generate some strings
    +words_1 = %w[apple junk ant age bee bar baz dog egg a]
    +words_2 = %w[ape flan can cat juice elf gnome child fruit]
    +
    +# Single sided stem-plot 
    +UnicodePlot.stemplot(words_1)
    +
    +# Back to back stem-plot 
    +UnicodePlot.stemplot(words_1, words_2)
    +
    +# Scaled stem plot using scale=100 (two letters for the stem) and trimmed stems
    +UnicodePlot.stemplot(words_1, scale: 100, trim: true)
    +
    +# Above, but changing the string_padchar
    +UnicodePlot.stemplot(words_1, scale: 100, trim: true, string_padchar: '?')
    + +
    + + +
    +

    Direct Known Subclasses

    +

    NumericStemplot, StringStemplot

    +
    + + + + + + + + +

    + Class Method Summary + collapse +

    + + + +

    + Instance Method Summary + collapse +

    + + + + +
    +

    Constructor Details

    + +
    +

    + + #initialize(*_args, **_kw) ⇒ Stemplot + + + + + +

    +
    +

    Use factory method – should not be directly called.

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +84
    +85
    +86
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 84
    +
    +def initialize(*_args, **_kw)
    +  @stemleafs = {}
    +end
    +
    +
    + +
    + + +
    +

    Class Method Details

    + + +
    +

    + + .factory(vector, **kw) ⇒ NumericStemplot, StringStemplot + + + + + +

    +
    +

    Factory method to create a Stemplot, creates either a NumericStemplot
    +or StringStemplot depending on input.

    + + +
    +
    +
    +

    Parameters:

    +
      + +
    • + + vector + + + (Array) + + + + — +

      An array of elements to stem-leaf plot

      +
      + +
    • + +
    + +

    Returns:

    +
      + +
    • + + + (NumericStemplot) + + + + — +

      If all elements are Numeric

      +
      + +
    • + +
    • + + + (StringStemplot) + + + + — +

      If any elements are not Numeric

      +
      + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 94
    +
    +def self.factory(vector, **kw)
    +  vec = Array(vector)
    +  if vec.all? { |item| item.is_a?(Numeric) }
    +    NumericStemplot.new(vec, **kw)
    +  else
    +    StringStemplot.new(vec, **kw)
    +  end
    +end
    +
    +
    + +
    + +
    +

    Instance Method Details

    + + +
    +

    + + #insert(stem, leaf) ⇒ Object + + + + + +

    +
    +

    Insert a stem and leaf

    + + +
    +
    +
    + + +
    + + + + +
    +
    +
    +
    +104
    +105
    +106
    +107
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 104
    +
    +def insert(stem, leaf)
    +  @stemleafs[stem] ||= []
    +  @stemleafs[stem] << leaf
    +end
    +
    +
    + +
    +

    + + #leaves(stem) ⇒ Array + + + + + +

    +
    +

    Returns a list of leaves for a given stem

    + + +
    +
    +
    +

    Parameters:

    +
      + +
    • + + stem + + + (Object) + + + + — +

      The stem

      +
      + +
    • + +
    + +

    Returns:

    +
      + +
    • + + + (Array) + + + + — +

      Unsorted list of leaves

      +
      + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +118
    +119
    +120
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 118
    +
    +def leaves(stem)
    +  @stemleafs[stem] || []
    +end
    +
    +
    + +
    +

    + + #max_stem_lengthInteger + + + + + +

    +
    +

    Determines largest length of any stem

    + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Integer) + + + + — +

      Length value

      +
      + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +124
    +125
    +126
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 124
    +
    +def max_stem_length
    +  @stemleafs.values.map(&:length).max
    +end
    +
    +
    + +
    +

    + + #raw_stemsArray + + + + + +

    +
    +

    Returns an unsorted list of stems

    + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Array) + + + + — +

      Unsorted list of stems

      +
      + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +111
    +112
    +113
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 111
    +
    +def raw_stems
    +  @stemleafs.keys
    +end
    +
    +
    + +
    +

    + + #stems(all: true) ⇒ Array + + + + + +

    +
    +

    Returns a sorted list of stems

    + + +
    +
    +
    +

    Parameters:

    +
      + +
    • + + all + + + (Boolean) + + + (defaults to: true) + + + — +

      Return all stems if true, otherwise only return stems if a leaf exists for a stem

      +
      + +
    • + +
    + +

    Returns:

    +
      + +
    • + + + (Array) + + + + — +

      Sorted list of stems

      +
      + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +131
    +132
    +133
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 131
    +
    +def stems(all: true)
    +  self.class.sorted_stem_list(raw_stems, all: all)
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/StringStemplot.html b/0.0.5/UnicodePlot/StringStemplot.html new file mode 100644 index 0000000..084cfb0 --- /dev/null +++ b/0.0.5/UnicodePlot/StringStemplot.html @@ -0,0 +1,473 @@ + + + + + + + Class: UnicodePlot::StringStemplot + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Class: UnicodePlot::StringStemplot + + + +

    +
    + +
    +
    Inherits:
    +
    + Stemplot + +
      +
    • Object
    • + + + + + +
    + show all + +
    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/stemplot.rb
    +
    + +
    + + + + + + + + + +

    + Class Method Summary + collapse +

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + + + + + + + + +

    Methods inherited from Stemplot

    +

    factory, #insert, #leaves, #max_stem_length, #raw_stems, #stems

    +
    +

    Constructor Details

    + +
    +

    + + #initialize(vector, scale: 10, string_padchar: '_', **_kw) ⇒ StringStemplot + + + + + +

    +
    +

    Returns a new instance of StringStemplot.

    + + +
    +
    +
    + +

    Raises:

    +
      + +
    • + + + (ArgumentError) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +186
    +187
    +188
    +189
    +190
    +191
    +192
    +193
    +194
    +195
    +196
    +197
    +198
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 186
    +
    +def initialize(vector, scale: 10, string_padchar: '_', **_kw)
    +  super
    +  stem_places = Math.log10(scale).floor
    +  raise ArgumentError, "Cannot take fewer than 1 place from stem.  Scale parameter should be greater than or equal to 10." if stem_places < 1
    +  vector.each do |value|
    +    # Strings may be shorter than the number of places we desire,
    +    # so we will pad them with a string-pad-character.
    +    padded_value = value.ljust(stem_places+1, string_padchar)
    +    stem = padded_value[0...stem_places]
    +    leaf = padded_value[stem_places]
    +    self.insert(stem, leaf)
    +  end
    +end
    +
    +
    + +
    + + +
    +

    Class Method Details

    + + +
    +

    + + .sorted_stem_list(stems, all: true) ⇒ Array + + + + + +

    +
    +

    Used when we have stems from a back-to-back stemplot and a combined list of stems is given

    + + +
    +
    +
    +

    Parameters:

    +
      + +
    • + + stems + + + (Array) + + + + — +

      Concatenated list of stems from two plots

      +
      + +
    • + +
    • + + all + + + (Boolean) + + + (defaults to: true) + + + — +

      Return all stems if true, otherwise only return stems if a leaf exists for a stem

      +
      + +
    • + +
    + +

    Returns:

    +
      + +
    • + + + (Array) + + + + — +

      Sorted list of stems

      +
      + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +212
    +213
    +214
    +215
    +216
    +217
    +218
    +219
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 212
    +
    +def self.sorted_stem_list(stems, all: true)
    +  if all
    +    rmin, rmax = stems.minmax
    +    return (rmin .. rmax).to_a
    +  else
    +    stems.sort
    +  end
    +end
    +
    +
    + +
    + +
    +

    Instance Method Details

    + + +
    +
    +
    +

    Function prototype to provide same interface as NumericStemplot.
    +This function does not do anything.

    + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (false) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +203
    +204
    +205
    +206
    +
    +
    # File 'src/lib/unicode_plot/stemplot.rb', line 203
    +
    +def print_key(_scale, _divider)
    +  # intentionally empty
    +  return false
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/StyledPrinter.html b/0.0.5/UnicodePlot/StyledPrinter.html new file mode 100644 index 0000000..e660c33 --- /dev/null +++ b/0.0.5/UnicodePlot/StyledPrinter.html @@ -0,0 +1,345 @@ + + + + + + + Module: UnicodePlot::StyledPrinter + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Module: UnicodePlot::StyledPrinter + + + +

    +
    + + + + + + + + + +
    +
    Included in:
    +
    BorderPrinter, Plot
    +
    + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/styled_printer.rb
    +
    + +
    + + + +

    + Constant Summary + collapse +

    + +
    + +
    TEXT_COLORS = + +
    +
    {
    +  black:         "\033[30m",
    +  red:           "\033[31m",
    +  green:         "\033[32m",
    +  yellow:        "\033[33m",
    +  blue:          "\033[34m",
    +  magenta:       "\033[35m",
    +  cyan:          "\033[36m",
    +  white:         "\033[37m",
    +  gray:          "\033[90m",
    +  light_black:   "\033[90m",
    +  light_red:     "\033[91m",
    +  light_green:   "\033[92m",
    +  light_yellow:  "\033[93m",
    +  light_blue:    "\033[94m",
    +  light_magenta: "\033[95m",
    +  light_cyan:    "\033[96m",
    +  normal:        "\033[0m",
    +  default:       "\033[39m",
    +  bold:          "\033[1m",
    +  underline:     "\033[4m",
    +  blink:         "\033[5m",
    +  reverse:       "\033[7m",
    +  hidden:        "\033[8m",
    +  nothing:       "",
    +}
    + +
    DISABLE_TEXT_STYLE = + +
    +
    {
    +  bold:      "\033[22m",
    +  underline: "\033[24m",
    +  blink:     "\033[25m",
    +  reverse:   "\033[27m",
    +  hidden:    "\033[28m",
    +  normal:    "",
    +  default:   "",
    +  nothing:   "",
    +}.freeze
    + +
    COLOR_ENCODE = + +
    +
    {
    +  normal:  0b000,
    +  blue:    0b001,
    +  red:     0b010,
    +  magenta: 0b011,
    +  green:   0b100,
    +  cyan:    0b101,
    +  yellow:  0b110,
    +  white:   0b111
    +}.freeze
    + +
    COLOR_DECODE = + +
    +
    COLOR_ENCODE.map {|k, v| [v, k] }.to_h.freeze
    + +
    + + + + + + + + + +

    + Instance Method Summary + collapse +

    + + + + + + +
    +

    Instance Method Details

    + + +
    + + + + + +
    +
    +
    +
    +82
    +83
    +84
    +85
    +
    +
    # File 'src/lib/unicode_plot/styled_printer.rb', line 82
    +
    +def print_color(out, color, *args)
    +  color = COLOR_DECODE[color]
    +  print_styled(out, *args, color: color)
    +end
    +
    +
    + +
    + + + + + +
    +
    +
    +
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +
    +
    # File 'src/lib/unicode_plot/styled_printer.rb', line 60
    +
    +def print_styled(out, *args, bold: false, color: :normal)
    +  return out.print(*args) unless out.color?
    +
    +  str = StringIO.open {|sio| sio.print(*args); sio.close; sio.string }
    +  color = :nothing if bold && color == :bold
    +  enable_ansi = TEXT_COLORS.fetch(color, TEXT_COLORS[:default]) +
    +                (bold ? TEXT_COLORS[:bold] : "")
    +  disable_ansi = (bold ? DISABLE_TEXT_STYLE[:bold] : "") +
    +                 DISABLE_TEXT_STYLE.fetch(color, TEXT_COLORS[:default])
    +  first = true
    +  StringIO.open do |sio|
    +    str.each_line do |line|
    +      sio.puts unless first
    +      first = false
    +      continue if line.empty?
    +      sio.print(enable_ansi, line, disable_ansi)
    +    end
    +    sio.close
    +    out.print(sio.string)
    +  end
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/Utils.html b/0.0.5/UnicodePlot/Utils.html new file mode 100644 index 0000000..9bd5c15 --- /dev/null +++ b/0.0.5/UnicodePlot/Utils.html @@ -0,0 +1,613 @@ + + + + + + + Module: UnicodePlot::Utils + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Module: UnicodePlot::Utils + + + +

    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/utils.rb
    +
    + +
    + + + +

    + Constant Summary + collapse +

    + +
    + +
    INT64_MIN = + +
    +
    -9223372036854775808
    + +
    INT64_MAX = + +
    +
    9223372036854775807
    + +
    + + + + + + + + + +

    + Class Method Summary + collapse +

    + + + + + + +
    +

    Class Method Details

    + + +
    +

    + + .ceil_neg_log10(x) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +
    +
    # File 'src/lib/unicode_plot/utils.rb', line 59
    +
    +def ceil_neg_log10(x)
    +  if roundable?(-Math.log10(x))
    +    (-Math.log10(x)).ceil
    +  else
    +    (-Math.log10(x)).floor
    +  end
    +end
    +
    +
    + +
    +

    + + .extend_limits(values, limits) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +
    +
    # File 'src/lib/unicode_plot/utils.rb', line 5
    +
    +def extend_limits(values, limits)
    +  mi, ma = limits.minmax.map(&:to_f)
    +  if mi == 0 && ma == 0
    +    mi, ma = values.minmax.map(&:to_f)
    +  end
    +  diff = ma - mi
    +  if diff == 0
    +    ma = mi + 1
    +    mi = mi - 1
    +  end
    +  if limits == [0, 0]
    +    plotting_range_narrow(mi, ma)
    +  else
    +    [mi, ma]
    +  end
    +end
    +
    +
    + +
    +

    + + .float_round_log10(x, m) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +
    +
    # File 'src/lib/unicode_plot/utils.rb', line 29
    +
    +def float_round_log10(x, m)
    +  if x == 0
    +    0.0
    +  elsif x > 0
    +    x.round(ceil_neg_log10(m) + 1).to_f
    +  else
    +    -(-x).round(ceil_neg_log10(m) + 1).to_f
    +  end
    +end
    +
    +
    + +
    +

    + + .plotting_range_narrow(xmin, xmax) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +22
    +23
    +24
    +25
    +26
    +27
    +
    +
    # File 'src/lib/unicode_plot/utils.rb', line 22
    +
    +def plotting_range_narrow(xmin, xmax)
    +  diff = xmax - xmin
    +  xmax = round_up_subtick(xmax, diff)
    +  xmin = round_down_subtick(xmin, diff)
    +  [xmin.to_f, xmax.to_f]
    +end
    +
    +
    + +
    +

    + + .round_down_subtick(x, m) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +
    +
    # File 'src/lib/unicode_plot/utils.rb', line 49
    +
    +def round_down_subtick(x, m)
    +  if x == 0
    +    0.0
    +  elsif x > 0
    +    x.floor(ceil_neg_log10(m) + 1)
    +  else
    +    -(-x).ceil(ceil_neg_log10(m) + 1)
    +  end
    +end
    +
    +
    + +
    +

    + + .round_up_subtick(x, m) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +
    +
    # File 'src/lib/unicode_plot/utils.rb', line 39
    +
    +def round_up_subtick(x, m)
    +  if x == 0
    +    0.0
    +  elsif x > 0
    +    x.ceil(ceil_neg_log10(m) + 1)
    +  else
    +    -(-x).floor(ceil_neg_log10(m) + 1)
    +  end
    +end
    +
    +
    + +
    +

    + + .roundable?(x) ⇒ Boolean + + + + + +

    +
    + + + +
    +
    +
    + +

    Returns:

    +
      + +
    • + + + (Boolean) + + + +
    • + +
    + +
    + + + + +
    +
    +
    +
    +70
    +71
    +72
    +
    +
    # File 'src/lib/unicode_plot/utils.rb', line 70
    +
    +def roundable?(x)
    +  x.to_i == x && INT64_MIN <= x && x < INT64_MAX
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/ValueTransformer.html b/0.0.5/UnicodePlot/ValueTransformer.html new file mode 100644 index 0000000..4e31ed5 --- /dev/null +++ b/0.0.5/UnicodePlot/ValueTransformer.html @@ -0,0 +1,317 @@ + + + + + + + Module: UnicodePlot::ValueTransformer + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Module: UnicodePlot::ValueTransformer + + + +

    +
    + + + + + + + + + +
    +
    Included in:
    +
    Barplot
    +
    + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/value_transformer.rb
    +
    + +
    + + + +

    + Constant Summary + collapse +

    + +
    + +
    PREDEFINED_TRANSFORM_FUNCTIONS = + +
    +
    {
    +  log: Math.method(:log),
    +  ln: Math.method(:log),
    +  log10: Math.method(:log10),
    +  lg: Math.method(:log10),
    +  log2: Math.method(:log2),
    +  lb: Math.method(:log2),
    +}.freeze
    + +
    + + + + + + + + + +

    + Class Method Summary + collapse +

    + + + +

    + Instance Method Summary + collapse +

    + + + + + + +
    +

    Class Method Details

    + + +
    +

    + + .transform_name(func, basename = "") ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +
    +
    # File 'src/lib/unicode_plot/value_transformer.rb', line 30
    +
    +module_function def transform_name(func, basename="")
    +  return basename unless func
    +  case func
    +  when String, Symbol
    +    name = func
    +  when ->(f) { f.respond_to?(:name) }
    +    name = func.name
    +  else
    +    name = "custom"
    +  end
    +  "#{basename} [#{name}]"
    +end
    +
    +
    + +
    + +
    +

    Instance Method Details

    + + +
    +

    + + #transform_values(func, values) ⇒ Object + + + + + +

    + + + + +
    +
    +
    +
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +
    +
    # File 'src/lib/unicode_plot/value_transformer.rb', line 12
    +
    +def transform_values(func, values)
    +  return values unless func
    +
    +  unless func.respond_to?(:call)
    +    func = PREDEFINED_TRANSFORM_FUNCTIONS[func]
    +    unless func.respond_to?(:call)
    +      raise ArgumentError, "func must be callable"
    +    end
    +  end
    +
    +  case values
    +  when Numeric
    +    func.(values)
    +  else
    +    values.map(&func)
    +  end
    +end
    +
    +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/UnicodePlot/Version.html b/0.0.5/UnicodePlot/Version.html new file mode 100644 index 0000000..261a5e1 --- /dev/null +++ b/0.0.5/UnicodePlot/Version.html @@ -0,0 +1,121 @@ + + + + + + + Module: UnicodePlot::Version + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Module: UnicodePlot::Version + + + +

    +
    + + + + + + + + + + + +
    +
    Defined in:
    +
    src/lib/unicode_plot/version.rb
    +
    + +
    + + + +

    + Constant Summary + collapse +

    + +
    + +
    STRING = + +
    +
    VERSION
    + +
    + + + + + + + + + + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/_index.html b/0.0.5/_index.html new file mode 100644 index 0000000..00c2f0a --- /dev/null +++ b/0.0.5/_index.html @@ -0,0 +1,380 @@ + + + + + + + Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
    + + +

    Documentation by YARD 0.9.26

    +
    +

    Alphabetic Index

    + +

    File Listing

    + + +
    +

    Namespace Listing A-Z

    + + + + + + + + +
    + + + + + + + + +
      +
    • C
    • +
        + +
      • + Canvas + + (UnicodePlot) + +
      • + +
      +
    + + + + + +
      +
    • G
    • +
        + +
      • + GridPlot + + (UnicodePlot) + +
      • + +
      +
    + + +
      +
    • I
    • + +
    + + + + + +
    + + + + + +
      +
    • P
    • +
        + +
      • + Plot + + (UnicodePlot) + +
      • + +
      +
    + + +
      +
    • R
    • +
        + +
      • + Renderer + + (UnicodePlot) + +
      • + +
      +
    + + + + + + + + + + +
    + +
    + +
    + + + +
    + + \ No newline at end of file diff --git a/0.0.5/class_list.html b/0.0.5/class_list.html new file mode 100644 index 0000000..6990e7f --- /dev/null +++ b/0.0.5/class_list.html @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + Class List + + + +
    +
    +

    Class List

    + + + +
    + + +
    + + diff --git a/0.0.5/css/common.css b/0.0.5/css/common.css new file mode 100644 index 0000000..cf25c45 --- /dev/null +++ b/0.0.5/css/common.css @@ -0,0 +1 @@ +/* Override this file with custom rules */ \ No newline at end of file diff --git a/0.0.5/css/full_list.css b/0.0.5/css/full_list.css new file mode 100644 index 0000000..fa35982 --- /dev/null +++ b/0.0.5/css/full_list.css @@ -0,0 +1,58 @@ +body { + margin: 0; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + height: 101%; + overflow-x: hidden; + background: #fafafa; +} + +h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; } +.clear { clear: both; } +.fixed_header { position: fixed; background: #fff; width: 100%; padding-bottom: 10px; margin-top: 0; top: 0; z-index: 9999; height: 70px; } +#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; } +#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; } +#full_list { padding: 0; list-style: none; margin-left: 0; margin-top: 80px; font-size: 1.1em; } +#full_list ul { padding: 0; } +#full_list li { padding: 0; margin: 0; list-style: none; } +#full_list li .item { padding: 5px 5px 5px 12px; } +#noresults { padding: 7px 12px; background: #fff; } +#content.insearch #noresults { margin-left: 7px; } +li.collapsed ul { display: none; } +li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; } +li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; } +li { color: #888; cursor: pointer; } +li.deprecated { text-decoration: line-through; font-style: italic; } +li.odd { background: #f0f0f0; } +li.even { background: #fafafa; } +.item:hover { background: #ddd; } +li small:before { content: "("; } +li small:after { content: ")"; } +li small.search_info { display: none; } +a, a:visited { text-decoration: none; color: #05a; } +li.clicked > .item { background: #05a; color: #ccc; } +li.clicked > .item a, li.clicked > .item a:visited { color: #eee; } +li.clicked > .item a.toggle { opacity: 0.5; background-position: bottom right; } +li.collapsed.clicked a.toggle { background-position: top right; } +#search input { border: 1px solid #bbb; border-radius: 3px; } +#full_list_nav { margin-left: 10px; font-size: 0.9em; display: block; color: #aaa; } +#full_list_nav a, #nav a:visited { color: #358; } +#full_list_nav a:hover { background: transparent; color: #5af; } +#full_list_nav span:after { content: ' | '; } +#full_list_nav span:last-child:after { content: ''; } + +#content h1 { margin-top: 0; } +li { white-space: nowrap; cursor: normal; } +li small { display: block; font-size: 0.8em; } +li small:before { content: ""; } +li small:after { content: ""; } +li small.search_info { display: none; } +#search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; } +#content.insearch #search { background-position: center right; } +#search input { width: 110px; } + +#full_list.insearch ul { display: block; } +#full_list.insearch .item { display: none; } +#full_list.insearch .found { display: block; padding-left: 11px !important; } +#full_list.insearch li a.toggle { display: none; } +#full_list.insearch li small.search_info { display: block; } diff --git a/0.0.5/css/style.css b/0.0.5/css/style.css new file mode 100644 index 0000000..eb0dbc8 --- /dev/null +++ b/0.0.5/css/style.css @@ -0,0 +1,497 @@ +html { + width: 100%; + height: 100%; +} +body { + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-size: 13px; + width: 100%; + margin: 0; + padding: 0; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; +} + +#nav { + position: relative; + width: 100%; + height: 100%; + border: 0; + border-right: 1px dotted #eee; + overflow: auto; +} +.nav_wrap { + margin: 0; + padding: 0; + width: 20%; + height: 100%; + position: relative; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; + flex-shrink: 0; + -webkit-flex-shrink: 0; + -ms-flex: 1 0; +} +#resizer { + position: absolute; + right: -5px; + top: 0; + width: 10px; + height: 100%; + cursor: col-resize; + z-index: 9999; +} +#main { + flex: 5 1; + -webkit-flex: 5 1; + -ms-flex: 5 1; + outline: none; + position: relative; + background: #fff; + padding: 1.2em; + padding-top: 0.2em; + box-sizing: border-box; +} + +@media (max-width: 920px) { + .nav_wrap { width: 100%; top: 0; right: 0; overflow: visible; position: absolute; } + #resizer { display: none; } + #nav { + z-index: 9999; + background: #fff; + display: none; + position: absolute; + top: 40px; + right: 12px; + width: 500px; + max-width: 80%; + height: 80%; + overflow-y: scroll; + border: 1px solid #999; + border-collapse: collapse; + box-shadow: -7px 5px 25px #aaa; + border-radius: 2px; + } +} + +@media (min-width: 920px) { + body { height: 100%; overflow: hidden; } + #main { height: 100%; overflow: auto; } + #search { display: none; } +} + +#main img { max-width: 100%; } +h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; } +h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; } +h1.title { margin-bottom: 10px; } +h1.alphaindex { margin-top: 0; font-size: 22px; } +h2 { + padding: 0; + padding-bottom: 3px; + border-bottom: 1px #aaa solid; + font-size: 1.4em; + margin: 1.8em 0 0.5em; + position: relative; +} +h2 small { font-weight: normal; font-size: 0.7em; display: inline; position: absolute; right: 0; } +h2 small a { + display: block; + height: 20px; + border: 1px solid #aaa; + border-bottom: 0; + border-top-left-radius: 5px; + background: #f8f8f8; + position: relative; + padding: 2px 7px; +} +.clear { clear: both; } +.inline { display: inline; } +.inline p:first-child { display: inline; } +.docstring, .tags, #filecontents { font-size: 15px; line-height: 1.5145em; } +.docstring p > code, .docstring p > tt, .tags p > code, .tags p > tt { + color: #c7254e; background: #f9f2f4; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; } +.docstring h1 { font-size: 1.2em; } +.docstring h2 { font-size: 1.1em; } +.docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; } +.summary_desc .object_link a, .docstring .object_link a { + font-family: monospace; font-size: 1.05em; + color: #05a; background: #EDF4FA; padding: 2px 4px; font-size: 1em; + border-radius: 4px; +} +.rdoc-term { padding-right: 25px; font-weight: bold; } +.rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; } +.summary_desc pre.code .object_link a, .docstring pre.code .object_link a { + padding: 0px; background: inherit; color: inherit; border-radius: inherit; +} + +/* style for */ +#filecontents table, .docstring table { border-collapse: collapse; } +#filecontents table th, #filecontents table td, +.docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; } +#filecontents table tr:nth-child(odd), +.docstring table tr:nth-child(odd) { background: #eee; } +#filecontents table tr:nth-child(even), +.docstring table tr:nth-child(even) { background: #fff; } +#filecontents table th, .docstring table th { background: #fff; } + +/* style for
      */ +#filecontents li > p, .docstring li > p { margin: 0px; } +#filecontents ul, .docstring ul { padding-left: 20px; } +/* style for
      */ +#filecontents dl, .docstring dl { border: 1px solid #ccc; } +#filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; } +#filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; } +#filecontents dd > p, .docstring dd > p { margin: 0px; } + +.note { + color: #222; + margin: 20px 0; + padding: 10px; + border: 1px solid #eee; + border-radius: 3px; + display: block; +} +.docstring .note { + border-left-color: #ccc; + border-left-width: 5px; +} +.note.todo { background: #ffffc5; border-color: #ececaa; } +.note.returns_void { background: #efefef; } +.note.deprecated { background: #ffe5e5; border-color: #e9dada; } +.note.title.deprecated { background: #ffe5e5; border-color: #e9dada; } +.note.private { background: #ffffc5; border-color: #ececaa; } +.note.title { padding: 3px 6px; font-size: 0.9em; font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; display: inline; } +.summary_signature + .note.title { margin-left: 7px; } +h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; } +.note.title { background: #efefef; } +.note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; } +.note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; } +.note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; } +.note.title.private { background: #d5d5d5; border-color: #c5c5c5; } +.note.title.not_defined_here { background: transparent; border: none; font-style: italic; } +.discussion .note { margin-top: 6px; } +.discussion .note:first-child { margin-top: 0; } + +h3.inherited { + font-style: italic; + font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; + font-weight: normal; + padding: 0; + margin: 0; + margin-top: 12px; + margin-bottom: 3px; + font-size: 13px; +} +p.inherited { + padding: 0; + margin: 0; + margin-left: 25px; +} + +.box_info dl { + margin: 0; + border: 0; + width: 100%; + font-size: 1em; + display: flex; + display: -webkit-flex; + display: -ms-flexbox; +} +.box_info dl dt { + flex-shrink: 0; + -webkit-flex-shrink: 1; + -ms-flex-shrink: 1; + width: 100px; + text-align: right; + font-weight: bold; + border: 1px solid #aaa; + border-width: 1px 0px 0px 1px; + padding: 6px 0; + padding-right: 10px; +} +.box_info dl dd { + flex-grow: 1; + -webkit-flex-grow: 1; + -ms-flex: 1; + max-width: 420px; + padding: 6px 0; + padding-right: 20px; + border: 1px solid #aaa; + border-width: 1px 1px 0 0; + overflow: hidden; + position: relative; +} +.box_info dl:last-child > * { + border-bottom: 1px solid #aaa; +} +.box_info dl:nth-child(odd) > * { background: #eee; } +.box_info dl:nth-child(even) > * { background: #fff; } +.box_info dl > * { margin: 0; } + +ul.toplevel { list-style: none; padding-left: 0; font-size: 1.1em; } +.index_inline_list { padding-left: 0; font-size: 1.1em; } + +.index_inline_list li { + list-style: none; + display: inline-block; + padding: 0 12px; + line-height: 30px; + margin-bottom: 5px; +} + +dl.constants { margin-left: 10px; } +dl.constants dt { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; } +dl.constants.compact dt { display: inline-block; font-weight: normal } +dl.constants dd { width: 75%; white-space: pre; font-family: monospace; margin-bottom: 18px; } +dl.constants .docstring .note:first-child { margin-top: 5px; } + +.summary_desc { + margin-left: 32px; + display: block; + font-family: sans-serif; + font-size: 1.1em; + margin-top: 8px; + line-height: 1.5145em; + margin-bottom: 0.8em; +} +.summary_desc tt { font-size: 0.9em; } +dl.constants .note { padding: 2px 6px; padding-right: 12px; margin-top: 6px; } +dl.constants .docstring { margin-left: 32px; font-size: 0.9em; font-weight: normal; } +dl.constants .tags { padding-left: 32px; font-size: 0.9em; line-height: 0.8em; } +dl.constants .discussion *:first-child { margin-top: 0; } +dl.constants .discussion *:last-child { margin-bottom: 0; } + +.method_details { border-top: 1px dotted #ccc; margin-top: 25px; padding-top: 0; } +.method_details.first { border: 0; margin-top: 5px; } +.method_details.first h3.signature { margin-top: 1em; } +p.signature, h3.signature { + font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace; + padding: 6px 10px; margin-top: 1em; + background: #E8F4FF; border: 1px solid #d8d8e5; border-radius: 5px; +} +p.signature tt, +h3.signature tt { font-family: Monaco, Consolas, Courier, monospace; } +p.signature .overload, +h3.signature .overload { display: block; } +p.signature .extras, +h3.signature .extras { font-weight: normal; font-family: sans-serif; color: #444; font-size: 1em; } +p.signature .not_defined_here, +h3.signature .not_defined_here, +p.signature .aliases, +h3.signature .aliases { display: block; font-weight: normal; font-size: 0.9em; font-family: sans-serif; margin-top: 0px; color: #555; } +p.signature .aliases .names, +h3.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace; font-weight: bold; color: #000; font-size: 1.2em; } + +.tags .tag_title { font-size: 1.05em; margin-bottom: 0; font-weight: bold; } +.tags .tag_title tt { color: initial; padding: initial; background: initial; } +.tags ul { margin-top: 5px; padding-left: 30px; list-style: square; } +.tags ul li { margin-bottom: 3px; } +.tags ul .name { font-family: monospace; font-weight: bold; } +.tags ul .note { padding: 3px 6px; } +.tags { margin-bottom: 12px; } + +.tags .examples .tag_title { margin-bottom: 10px; font-weight: bold; } +.tags .examples .inline p { padding: 0; margin: 0; font-weight: bold; font-size: 1em; } +.tags .examples .inline p:before { content: "▸"; font-size: 1em; margin-right: 5px; } + +.tags .overload .overload_item { list-style: none; margin-bottom: 25px; } +.tags .overload .overload_item .signature { + padding: 2px 8px; + background: #F1F8FF; border: 1px solid #d8d8e5; border-radius: 3px; +} +.tags .overload .signature { margin-left: -15px; font-family: monospace; display: block; font-size: 1.1em; } +.tags .overload .docstring { margin-top: 15px; } + +.defines { display: none; } + +#method_missing_details .notice.this { position: relative; top: -8px; color: #888; padding: 0; margin: 0; } + +.showSource { font-size: 0.9em; } +.showSource a, .showSource a:visited { text-decoration: none; color: #666; } + +#content a, #content a:visited { text-decoration: none; color: #05a; } +#content a:hover { background: #ffffa5; } + +ul.summary { + list-style: none; + font-family: monospace; + font-size: 1em; + line-height: 1.5em; + padding-left: 0px; +} +ul.summary a, ul.summary a:visited { + text-decoration: none; font-size: 1.1em; +} +ul.summary li { margin-bottom: 5px; } +.summary_signature { padding: 4px 8px; background: #f8f8f8; border: 1px solid #f0f0f0; border-radius: 5px; } +.summary_signature:hover { background: #CFEBFF; border-color: #A4CCDA; cursor: pointer; } +.summary_signature.deprecated { background: #ffe5e5; border-color: #e9dada; } +ul.summary.compact li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;} +ul.summary.compact .summary_signature { padding: 5px 7px; padding-right: 4px; } +#content .summary_signature:hover a, +#content .summary_signature:hover a:visited { + background: transparent; + color: #049; +} + +p.inherited a { font-family: monospace; font-size: 0.9em; } +p.inherited { word-spacing: 5px; font-size: 1.2em; } + +p.children { font-size: 1.2em; } +p.children a { font-size: 0.9em; } +p.children strong { font-size: 0.8em; } +p.children strong.modules { padding-left: 5px; } + +ul.fullTree { display: none; padding-left: 0; list-style: none; margin-left: 0; margin-bottom: 10px; } +ul.fullTree ul { margin-left: 0; padding-left: 0; list-style: none; } +ul.fullTree li { text-align: center; padding-top: 18px; padding-bottom: 12px; background: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAHtJREFUeNqMzrEJAkEURdGzuhgZbSoYWcAWoBVsB4JgZAGmphsZCZYzTQgWNCYrDN9RvMmHx+X916SUBFbo8CzD1idXrLErw1mQttgXtyrOcQ/Ny5p4Qh+2XqLYYazsPWNTiuMkRxa4vcV+evuNAUOLIx5+c2hyzv7hNQC67Q+/HHmlEwAAAABJRU5ErkJggg==) no-repeat top center; } +ul.fullTree li:first-child { padding-top: 0; background: transparent; } +ul.fullTree li:last-child { padding-bottom: 0; } +.showAll ul.fullTree { display: block; } +.showAll .inheritName { display: none; } + +#search { position: absolute; right: 12px; top: 0px; z-index: 9000; } +#search a { + display: block; float: left; + padding: 4px 8px; text-decoration: none; color: #05a; fill: #05a; + border: 1px solid #d8d8e5; + border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; + background: #F1F8FF; + box-shadow: -1px 1px 3px #ddd; +} +#search a:hover { background: #f5faff; color: #06b; fill: #06b; } +#search a.active { + background: #568; padding-bottom: 20px; color: #fff; fill: #fff; + border: 1px solid #457; + border-top-left-radius: 5px; border-top-right-radius: 5px; +} +#search a.inactive { color: #999; fill: #999; } +.inheritanceTree, .toggleDefines { + float: right; + border-left: 1px solid #aaa; + position: absolute; top: 0; right: 0; + height: 100%; + background: #f6f6f6; + padding: 5px; + min-width: 55px; + text-align: center; +} + +#menu { font-size: 1.3em; color: #bbb; } +#menu .title, #menu a { font-size: 0.7em; } +#menu .title a { font-size: 1em; } +#menu .title { color: #555; } +#menu a, #menu a:visited { color: #333; text-decoration: none; border-bottom: 1px dotted #bbd; } +#menu a:hover { color: #05a; } + +#footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; } +#footer a, #footer a:visited { color: #444; text-decoration: none; border-bottom: 1px dotted #bbd; } +#footer a:hover { color: #05a; } + +#listing ul.alpha { font-size: 1.1em; } +#listing ul.alpha { margin: 0; padding: 0; padding-bottom: 10px; list-style: none; } +#listing ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; } +#listing ul.alpha ul { margin: 0; padding-left: 15px; } +#listing ul small { color: #666; font-size: 0.7em; } + +li.r1 { background: #f0f0f0; } +li.r2 { background: #fafafa; } + +#content ul.summary li.deprecated .summary_signature a, +#content ul.summary li.deprecated .summary_signature a:visited { text-decoration: line-through; font-style: italic; } + +#toc { + position: relative; + float: right; + overflow-x: auto; + right: -3px; + margin-left: 20px; + margin-bottom: 20px; + padding: 20px; padding-right: 30px; + max-width: 300px; + z-index: 5000; + background: #fefefe; + border: 1px solid #ddd; + box-shadow: -2px 2px 6px #bbb; +} +#toc .title { margin: 0; } +#toc ol { padding-left: 1.8em; } +#toc li { font-size: 1.1em; line-height: 1.7em; } +#toc > ol > li { font-size: 1.1em; font-weight: bold; } +#toc ol > li > ol { font-size: 0.9em; } +#toc ol ol > li > ol { padding-left: 2.3em; } +#toc ol + li { margin-top: 0.3em; } +#toc.hidden { padding: 10px; background: #fefefe; box-shadow: none; } +#toc.hidden:hover { background: #fafafa; } +#filecontents h1 + #toc.nofloat { margin-top: 0; } +@media (max-width: 560px) { + #toc { + margin-left: 0; + margin-top: 16px; + float: none; + max-width: none; + } +} + +/* syntax highlighting */ +.source_code { display: none; padding: 3px 8px; border-left: 8px solid #ddd; margin-top: 5px; } +#filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; } +#filecontents pre.code, .docstring pre.code { display: block; } +.source_code .lines { padding-right: 12px; color: #555; text-align: right; } +#filecontents pre.code, .docstring pre.code, +.tags pre.example { + padding: 9px 14px; + margin-top: 4px; + border: 1px solid #e1e1e8; + background: #f7f7f9; + border-radius: 4px; + font-size: 1em; + overflow-x: auto; + line-height: 1.2em; +} +pre.code { color: #000; tab-size: 2; } +pre.code .info.file { color: #555; } +pre.code .val { color: #036A07; } +pre.code .tstring_content, +pre.code .heredoc_beg, pre.code .heredoc_end, +pre.code .qwords_beg, pre.code .qwords_end, pre.code .qwords_sep, +pre.code .words_beg, pre.code .words_end, pre.code .words_sep, +pre.code .qsymbols_beg, pre.code .qsymbols_end, pre.code .qsymbols_sep, +pre.code .symbols_beg, pre.code .symbols_end, pre.code .symbols_sep, +pre.code .tstring, pre.code .dstring { color: #036A07; } +pre.code .fid, pre.code .rubyid_new, pre.code .rubyid_to_s, +pre.code .rubyid_to_sym, pre.code .rubyid_to_f, +pre.code .dot + pre.code .id, +pre.code .rubyid_to_i pre.code .rubyid_each { color: #0085FF; } +pre.code .comment { color: #0066FF; } +pre.code .const, pre.code .constant { color: #585CF6; } +pre.code .label, +pre.code .symbol { color: #C5060B; } +pre.code .kw, +pre.code .rubyid_require, +pre.code .rubyid_extend, +pre.code .rubyid_include { color: #0000FF; } +pre.code .ivar { color: #318495; } +pre.code .gvar, +pre.code .rubyid_backref, +pre.code .rubyid_nth_ref { color: #6D79DE; } +pre.code .regexp, .dregexp { color: #036A07; } +pre.code a { border-bottom: 1px dotted #bbf; } +/* inline code */ +*:not(pre) > code { + padding: 1px 3px 1px 3px; + border: 1px solid #E1E1E8; + background: #F7F7F9; + border-radius: 4px; +} + +/* Color fix for links */ +#content .summary_desc pre.code .id > .object_link a, /* identifier */ +#content .docstring pre.code .id > .object_link a { color: #0085FF; } +#content .summary_desc pre.code .const > .object_link a, /* constant */ +#content .docstring pre.code .const > .object_link a { color: #585CF6; } diff --git a/0.0.5/file.CHANGES.html b/0.0.5/file.CHANGES.html new file mode 100644 index 0000000..1bd7a46 --- /dev/null +++ b/0.0.5/file.CHANGES.html @@ -0,0 +1,144 @@ + + + + + + + File: CHANGES + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
      + + +

      0.0.5

      + +
        +
      • +

        Add stairs support
        +[GitHub#38][GitHub#17]
        +[Patch by @nanobowers]

        +
      • +
      • +

        Add block canvas support
        +[GitHub#39][GitHub#19]
        +[Patch by @nanobowers]

        +
      • +
      • +

        Add stemplot support
        +[GitHub#40][GitHub#30]
        +[Patch by @nanobowers]

        +
      • +
      • +

        Add an example of animation
        +[GitHub#33]
        +[Patch by @mrkn and @kojix2]

        +
      • +
      • +

        Fix interpolation bug of lineplot
        +[GitHub#37][GitHub#32]
        +[Patch by @nanobowers]
        +[Reported by @Nakilon]

        +
      • +
      • +

        Support color: option in render method
        +[GitHub#45]

        +
      • +
      • +

        Add canvas_types method
        +[GitHub#44][GitHub#42]
        +[Reported by @kojix2]

        +
      • +
      • +

        Use appropriate message for invalid border types,
        +and add border_types method
        +[GitHub#43][GitHub#41]
        +[Reported by @kojix2]

        +
      • +
      + +

      0.0.4

      + +
        +
      • Fix error by requiring stringio [#22]
      • +
      • Use enumerable-statistics >= 2.0.1 to avoid a bug of histogram [#28]
      • +
      + +

      0.0.3

      + +
        +
      • Add histogram support
      • +
      • Add barplot! method
      • +
      • Add scatterplot support
      • +
      • Add densityplot support
      • +
      + +

      0.0.2

      + +
        +
      • Add boxplot support
      • +
      + +

      0.0.1

      + +
        +
      • Add barplot support
      • +
      • Add lineplot support
      • +
      +
      + + + +
      + + \ No newline at end of file diff --git a/0.0.5/file.LICENSE.html b/0.0.5/file.LICENSE.html new file mode 100644 index 0000000..d555862 --- /dev/null +++ b/0.0.5/file.LICENSE.html @@ -0,0 +1,70 @@ + + + + + + + File: LICENSE + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
      + + +
      The MIT License (MIT)
      Copyright © 2019 Kenta Murata

      Permission is hereby granted, free of charge, to any person obtaining a copy
      of this software and associated documentation files (the “Software”), to deal
      in the Software without restriction, including without limitation the rights
      to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      copies of the Software, and to permit persons to whom the Software is
      furnished to do so, subject to the following conditions:

      The above copyright notice and this permission notice shall be included in
      all copies or substantial portions of the Software.

      THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
      AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
      OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
      THE SOFTWARE.
      + + + +
      + + \ No newline at end of file diff --git a/0.0.5/file.README.html b/0.0.5/file.README.html new file mode 100644 index 0000000..b892448 --- /dev/null +++ b/0.0.5/file.README.html @@ -0,0 +1,158 @@ + + + + + + + File: README + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
      + + +

      UnicodePlot - Plot your data by Unicode characters

      + +

      UnicodePlot provides the feature to make charts with Unicode characters.

      + +

      Documentation

      + +

      https://red-data-tools.github.io/unicode_plot.rb/

      + +

      Install

      + +
      $ gem install unicode_plot
      +
      + +

      Usage

      + +
      require 'unicode_plot'
      +
      +x = 0.step(3*Math::PI, by: 3*Math::PI / 30)
      +y_sin = x.map {|xi| Math.sin(xi) }
      +y_cos = x.map {|xi| Math.cos(xi) }
      +plot = UnicodePlot.lineplot(x, y_sin, name: "sin(x)", width: 40, height: 10)
      +UnicodePlot.lineplot!(plot, x, y_cos, name: "cos(x)")
      +plot.render
      +
      + +

      You can get the results below by running the above script:

      + +

      + +

      Supported charts

      + +

      barplot

      + +
      UnicodePlot.barplot(data: {'foo': 20, 'bar': 50}, title: "Bar").render
      +
      + +

      + +

      boxplot

      + +
      UnicodePlot.boxplot(data: {foo: [1, 3, 5], bar: [3, 5, 7]}, title: "Box").render
      +
      + +

      + +

      densityplot

      + +
      x = Array.new(500) { 20*rand - 10 } + Array.new(500) { 6*rand - 3 }
      +y = Array.new(1000) { 30*rand - 10 }
      +UnicodePlot.densityplot(x, y, title: "Density").render
      +
      + +

      + +

      histogram

      + +
      x = Array.new(100) { rand(10) } + Array.new(100) { rand(30) + 10 }
      +UnicodePlot.histogram(x, title: "Histogram").render
      +
      + +

      + +

      lineplot

      + +

      See Usage section above.

      + +

      scatterplot

      + +
      x = Array.new(50) { rand(20) - 10 }
      +y = x.map {|xx| xx*rand(30) - 10 }
      +UnicodePlot.scatterplot(x, y, title: "Scatter").render
      +
      + +

      + +

      Acknowledgement

      + +

      This library is strongly inspired by UnicodePlot.jl.

      + +

      License

      + +

      MIT License

      + +

      Author

      + + +
      + + + +
      + + \ No newline at end of file diff --git a/0.0.5/file_list.html b/0.0.5/file_list.html new file mode 100644 index 0000000..8bdafe2 --- /dev/null +++ b/0.0.5/file_list.html @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + File List + + + +
      +
      +

      File List

      + + + +
      + + +
      + + diff --git a/0.0.5/frames.html b/0.0.5/frames.html new file mode 100644 index 0000000..1310783 --- /dev/null +++ b/0.0.5/frames.html @@ -0,0 +1,17 @@ + + + + + Documentation by YARD 0.9.26 + + + + diff --git a/0.0.5/img/barplot.png b/0.0.5/img/barplot.png new file mode 100644 index 0000000..b93caee Binary files /dev/null and b/0.0.5/img/barplot.png differ diff --git a/0.0.5/img/boxplot.png b/0.0.5/img/boxplot.png new file mode 100644 index 0000000..4fe4c11 Binary files /dev/null and b/0.0.5/img/boxplot.png differ diff --git a/0.0.5/img/densityplot.png b/0.0.5/img/densityplot.png new file mode 100644 index 0000000..bbc3d8f Binary files /dev/null and b/0.0.5/img/densityplot.png differ diff --git a/0.0.5/img/histogram.png b/0.0.5/img/histogram.png new file mode 100644 index 0000000..499b486 Binary files /dev/null and b/0.0.5/img/histogram.png differ diff --git a/0.0.5/img/lineplot.png b/0.0.5/img/lineplot.png new file mode 100644 index 0000000..1b7b9ba Binary files /dev/null and b/0.0.5/img/lineplot.png differ diff --git a/0.0.5/img/scatterplot.png b/0.0.5/img/scatterplot.png new file mode 100644 index 0000000..a54672a Binary files /dev/null and b/0.0.5/img/scatterplot.png differ diff --git a/0.0.5/index.html b/0.0.5/index.html new file mode 100644 index 0000000..991c073 --- /dev/null +++ b/0.0.5/index.html @@ -0,0 +1,158 @@ + + + + + + + File: README + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
      + + +

      UnicodePlot - Plot your data by Unicode characters

      + +

      UnicodePlot provides the feature to make charts with Unicode characters.

      + +

      Documentation

      + +

      https://red-data-tools.github.io/unicode_plot.rb/

      + +

      Install

      + +
      $ gem install unicode_plot
      +
      + +

      Usage

      + +
      require 'unicode_plot'
      +
      +x = 0.step(3*Math::PI, by: 3*Math::PI / 30)
      +y_sin = x.map {|xi| Math.sin(xi) }
      +y_cos = x.map {|xi| Math.cos(xi) }
      +plot = UnicodePlot.lineplot(x, y_sin, name: "sin(x)", width: 40, height: 10)
      +UnicodePlot.lineplot!(plot, x, y_cos, name: "cos(x)")
      +plot.render
      +
      + +

      You can get the results below by running the above script:

      + +

      + +

      Supported charts

      + +

      barplot

      + +
      UnicodePlot.barplot(data: {'foo': 20, 'bar': 50}, title: "Bar").render
      +
      + +

      + +

      boxplot

      + +
      UnicodePlot.boxplot(data: {foo: [1, 3, 5], bar: [3, 5, 7]}, title: "Box").render
      +
      + +

      + +

      densityplot

      + +
      x = Array.new(500) { 20*rand - 10 } + Array.new(500) { 6*rand - 3 }
      +y = Array.new(1000) { 30*rand - 10 }
      +UnicodePlot.densityplot(x, y, title: "Density").render
      +
      + +

      + +

      histogram

      + +
      x = Array.new(100) { rand(10) } + Array.new(100) { rand(30) + 10 }
      +UnicodePlot.histogram(x, title: "Histogram").render
      +
      + +

      + +

      lineplot

      + +

      See Usage section above.

      + +

      scatterplot

      + +
      x = Array.new(50) { rand(20) - 10 }
      +y = x.map {|xx| xx*rand(30) - 10 }
      +UnicodePlot.scatterplot(x, y, title: "Scatter").render
      +
      + +

      + +

      Acknowledgement

      + +

      This library is strongly inspired by UnicodePlot.jl.

      + +

      License

      + +

      MIT License

      + +

      Author

      + + +
      + + + +
      + + \ No newline at end of file diff --git a/0.0.5/js/app.js b/0.0.5/js/app.js new file mode 100644 index 0000000..8d067fe --- /dev/null +++ b/0.0.5/js/app.js @@ -0,0 +1,314 @@ +(function() { + +var localStorage = {}, sessionStorage = {}; +try { localStorage = window.localStorage; } catch (e) { } +try { sessionStorage = window.sessionStorage; } catch (e) { } + +function createSourceLinks() { + $('.method_details_list .source_code'). + before("[View source]"); + $('.toggleSource').toggle(function() { + $(this).parent().nextAll('.source_code').slideDown(100); + $(this).text("Hide source"); + }, + function() { + $(this).parent().nextAll('.source_code').slideUp(100); + $(this).text("View source"); + }); +} + +function createDefineLinks() { + var tHeight = 0; + $('.defines').after(" more..."); + $('.toggleDefines').toggle(function() { + tHeight = $(this).parent().prev().height(); + $(this).prev().css('display', 'inline'); + $(this).parent().prev().height($(this).parent().height()); + $(this).text("(less)"); + }, + function() { + $(this).prev().hide(); + $(this).parent().prev().height(tHeight); + $(this).text("more..."); + }); +} + +function createFullTreeLinks() { + var tHeight = 0; + $('.inheritanceTree').toggle(function() { + tHeight = $(this).parent().prev().height(); + $(this).parent().toggleClass('showAll'); + $(this).text("(hide)"); + $(this).parent().prev().height($(this).parent().height()); + }, + function() { + $(this).parent().toggleClass('showAll'); + $(this).parent().prev().height(tHeight); + $(this).text("show all"); + }); +} + +function searchFrameButtons() { + $('.full_list_link').click(function() { + toggleSearchFrame(this, $(this).attr('href')); + return false; + }); + window.addEventListener('message', function(e) { + if (e.data === 'navEscape') { + $('#nav').slideUp(100); + $('#search a').removeClass('active inactive'); + $(window).focus(); + } + }); + + $(window).resize(function() { + if ($('#search:visible').length === 0) { + $('#nav').removeAttr('style'); + $('#search a').removeClass('active inactive'); + $(window).focus(); + } + }); +} + +function toggleSearchFrame(id, link) { + var frame = $('#nav'); + $('#search a').removeClass('active').addClass('inactive'); + if (frame.attr('src') === link && frame.css('display') !== "none") { + frame.slideUp(100); + $('#search a').removeClass('active inactive'); + } + else { + $(id).addClass('active').removeClass('inactive'); + if (frame.attr('src') !== link) frame.attr('src', link); + frame.slideDown(100); + } +} + +function linkSummaries() { + $('.summary_signature').click(function() { + document.location = $(this).find('a').attr('href'); + }); +} + +function summaryToggle() { + $('.summary_toggle').click(function(e) { + e.preventDefault(); + localStorage.summaryCollapsed = $(this).text(); + $('.summary_toggle').each(function() { + $(this).text($(this).text() == "collapse" ? "expand" : "collapse"); + var next = $(this).parent().parent().nextAll('ul.summary').first(); + if (next.hasClass('compact')) { + next.toggle(); + next.nextAll('ul.summary').first().toggle(); + } + else if (next.hasClass('summary')) { + var list = $('
        '); + list.html(next.html()); + list.find('.summary_desc, .note').remove(); + list.find('a').each(function() { + $(this).html($(this).find('strong').html()); + $(this).parent().html($(this)[0].outerHTML); + }); + next.before(list); + next.toggle(); + } + }); + return false; + }); + if (localStorage.summaryCollapsed == "collapse") { + $('.summary_toggle').first().click(); + } else { localStorage.summaryCollapsed = "expand"; } +} + +function constantSummaryToggle() { + $('.constants_summary_toggle').click(function(e) { + e.preventDefault(); + localStorage.summaryCollapsed = $(this).text(); + $('.constants_summary_toggle').each(function() { + $(this).text($(this).text() == "collapse" ? "expand" : "collapse"); + var next = $(this).parent().parent().nextAll('dl.constants').first(); + if (next.hasClass('compact')) { + next.toggle(); + next.nextAll('dl.constants').first().toggle(); + } + else if (next.hasClass('constants')) { + var list = $('
        '); + list.html(next.html()); + list.find('dt').each(function() { + $(this).addClass('summary_signature'); + $(this).text( $(this).text().split('=')[0]); + if ($(this).has(".deprecated").length) { + $(this).addClass('deprecated'); + }; + }); + // Add the value of the constant as "Tooltip" to the summary object + list.find('pre.code').each(function() { + console.log($(this).parent()); + var dt_element = $(this).parent().prev(); + var tooltip = $(this).text(); + if (dt_element.hasClass("deprecated")) { + tooltip = 'Deprecated. ' + tooltip; + }; + dt_element.attr('title', tooltip); + }); + list.find('.docstring, .tags, dd').remove(); + next.before(list); + next.toggle(); + } + }); + return false; + }); + if (localStorage.summaryCollapsed == "collapse") { + $('.constants_summary_toggle').first().click(); + } else { localStorage.summaryCollapsed = "expand"; } +} + +function generateTOC() { + if ($('#filecontents').length === 0) return; + var _toc = $('
          '); + var show = false; + var toc = _toc; + var counter = 0; + var tags = ['h2', 'h3', 'h4', 'h5', 'h6']; + var i; + var curli; + if ($('#filecontents h1').length > 1) tags.unshift('h1'); + for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; } + var lastTag = parseInt(tags[0][1], 10); + $(tags.join(', ')).each(function() { + if ($(this).parents('.method_details .docstring').length != 0) return; + if (this.id == "filecontents") return; + show = true; + var thisTag = parseInt(this.tagName[1], 10); + if (this.id.length === 0) { + var proposedId = $(this).attr('toc-id'); + if (typeof(proposedId) != "undefined") this.id = proposedId; + else { + var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_'); + if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; } + this.id = proposedId; + } + } + if (thisTag > lastTag) { + for (i = 0; i < thisTag - lastTag; i++) { + if ( typeof(curli) == "undefined" ) { + curli = $('
        1. '); + toc.append(curli); + } + toc = $('
            '); + curli.append(toc); + curli = undefined; + } + } + if (thisTag < lastTag) { + for (i = 0; i < lastTag - thisTag; i++) { + toc = toc.parent(); + toc = toc.parent(); + } + } + var title = $(this).attr('toc-title'); + if (typeof(title) == "undefined") title = $(this).text(); + curli =$('
          1. ' + title + '
          2. '); + toc.append(curli); + lastTag = thisTag; + }); + if (!show) return; + html = ''; + $('#content').prepend(html); + $('#toc').append(_toc); + $('#toc .hide_toc').toggle(function() { + $('#toc .top').slideUp('fast'); + $('#toc').toggleClass('hidden'); + $('#toc .title small').toggle(); + }, function() { + $('#toc .top').slideDown('fast'); + $('#toc').toggleClass('hidden'); + $('#toc .title small').toggle(); + }); +} + +function navResizeFn(e) { + if (e.which !== 1) { + navResizeFnStop(); + return; + } + + sessionStorage.navWidth = e.pageX.toString(); + $('.nav_wrap').css('width', e.pageX); + $('.nav_wrap').css('-ms-flex', 'inherit'); +} + +function navResizeFnStop() { + $(window).unbind('mousemove', navResizeFn); + window.removeEventListener('message', navMessageFn, false); +} + +function navMessageFn(e) { + if (e.data.action === 'mousemove') navResizeFn(e.data.event); + if (e.data.action === 'mouseup') navResizeFnStop(); +} + +function navResizer() { + $('#resizer').mousedown(function(e) { + e.preventDefault(); + $(window).mousemove(navResizeFn); + window.addEventListener('message', navMessageFn, false); + }); + $(window).mouseup(navResizeFnStop); + + if (sessionStorage.navWidth) { + navResizeFn({which: 1, pageX: parseInt(sessionStorage.navWidth, 10)}); + } +} + +function navExpander() { + var done = false, timer = setTimeout(postMessage, 500); + function postMessage() { + if (done) return; + clearTimeout(timer); + var opts = { action: 'expand', path: pathId }; + document.getElementById('nav').contentWindow.postMessage(opts, '*'); + done = true; + } + + window.addEventListener('message', function(event) { + if (event.data === 'navReady') postMessage(); + return false; + }, false); +} + +function mainFocus() { + var hash = window.location.hash; + if (hash !== '' && $(hash)[0]) { + $(hash)[0].scrollIntoView(); + } + + setTimeout(function() { $('#main').focus(); }, 10); +} + +function navigationChange() { + // This works around the broken anchor navigation with the YARD template. + window.onpopstate = function() { + var hash = window.location.hash; + if (hash !== '' && $(hash)[0]) { + $(hash)[0].scrollIntoView(); + } + }; +} + +$(document).ready(function() { + navResizer(); + navExpander(); + createSourceLinks(); + createDefineLinks(); + createFullTreeLinks(); + searchFrameButtons(); + linkSummaries(); + summaryToggle(); + constantSummaryToggle(); + generateTOC(); + mainFocus(); + navigationChange(); +}); + +})(); diff --git a/0.0.5/js/full_list.js b/0.0.5/js/full_list.js new file mode 100644 index 0000000..59069c5 --- /dev/null +++ b/0.0.5/js/full_list.js @@ -0,0 +1,216 @@ +(function() { + +var $clicked = $(null); +var searchTimeout = null; +var searchCache = []; +var caseSensitiveMatch = false; +var ignoreKeyCodeMin = 8; +var ignoreKeyCodeMax = 46; +var commandKey = 91; + +RegExp.escape = function(text) { + return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); +} + +function escapeShortcut() { + $(document).keydown(function(evt) { + if (evt.which == 27) { + window.parent.postMessage('navEscape', '*'); + } + }); +} + +function navResizer() { + $(window).mousemove(function(e) { + window.parent.postMessage({ + action: 'mousemove', event: {pageX: e.pageX, which: e.which} + }, '*'); + }).mouseup(function(e) { + window.parent.postMessage({action: 'mouseup'}, '*'); + }); + window.parent.postMessage("navReady", "*"); +} + +function clearSearchTimeout() { + clearTimeout(searchTimeout); + searchTimeout = null; +} + +function enableLinks() { + // load the target page in the parent window + $('#full_list li').on('click', function(evt) { + $('#full_list li').removeClass('clicked'); + $clicked = $(this); + $clicked.addClass('clicked'); + evt.stopPropagation(); + + if (evt.target.tagName === 'A') return true; + + var elem = $clicked.find('> .item .object_link a')[0]; + var e = evt.originalEvent; + var newEvent = new MouseEvent(evt.originalEvent.type); + newEvent.initMouseEvent(e.type, e.canBubble, e.cancelable, e.view, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget); + elem.dispatchEvent(newEvent); + evt.preventDefault(); + return false; + }); +} + +function enableToggles() { + // show/hide nested classes on toggle click + $('#full_list a.toggle').on('click', function(evt) { + evt.stopPropagation(); + evt.preventDefault(); + $(this).parent().parent().toggleClass('collapsed'); + highlight(); + }); +} + +function populateSearchCache() { + $('#full_list li .item').each(function() { + var $node = $(this); + var $link = $node.find('.object_link a'); + if ($link.length > 0) { + searchCache.push({ + node: $node, + link: $link, + name: $link.text(), + fullName: $link.attr('title').split(' ')[0] + }); + } + }); +} + +function enableSearch() { + $('#search input').keyup(function(event) { + if (ignoredKeyPress(event)) return; + if (this.value === "") { + clearSearch(); + } else { + performSearch(this.value); + } + }); + + $('#full_list').after(""); +} + +function ignoredKeyPress(event) { + if ( + (event.keyCode > ignoreKeyCodeMin && event.keyCode < ignoreKeyCodeMax) || + (event.keyCode == commandKey) + ) { + return true; + } else { + return false; + } +} + +function clearSearch() { + clearSearchTimeout(); + $('#full_list .found').removeClass('found').each(function() { + var $link = $(this).find('.object_link a'); + $link.text($link.text()); + }); + $('#full_list, #content').removeClass('insearch'); + $clicked.parents().removeClass('collapsed'); + highlight(); +} + +function performSearch(searchString) { + clearSearchTimeout(); + $('#full_list, #content').addClass('insearch'); + $('#noresults').text('').hide(); + partialSearch(searchString, 0); +} + +function partialSearch(searchString, offset) { + var lastRowClass = ''; + var i = null; + for (i = offset; i < Math.min(offset + 50, searchCache.length); i++) { + var item = searchCache[i]; + var searchName = (searchString.indexOf('::') != -1 ? item.fullName : item.name); + var matchString = buildMatchString(searchString); + var matchRegexp = new RegExp(matchString, caseSensitiveMatch ? "" : "i"); + if (searchName.match(matchRegexp) == null) { + item.node.removeClass('found'); + item.link.text(item.link.text()); + } + else { + item.node.addClass('found'); + item.node.removeClass(lastRowClass).addClass(lastRowClass == 'r1' ? 'r2' : 'r1'); + lastRowClass = item.node.hasClass('r1') ? 'r1' : 'r2'; + item.link.html(item.name.replace(matchRegexp, "$&")); + } + } + if(i == searchCache.length) { + searchDone(); + } else { + searchTimeout = setTimeout(function() { + partialSearch(searchString, i); + }, 0); + } +} + +function searchDone() { + searchTimeout = null; + highlight(); + if ($('#full_list li:visible').size() === 0) { + $('#noresults').text('No results were found.').hide().fadeIn(); + } else { + $('#noresults').text('').hide(); + } + $('#content').removeClass('insearch'); +} + +function buildMatchString(searchString, event) { + caseSensitiveMatch = searchString.match(/[A-Z]/) != null; + var regexSearchString = RegExp.escape(searchString); + if (caseSensitiveMatch) { + regexSearchString += "|" + + $.map(searchString.split(''), function(e) { return RegExp.escape(e); }). + join('.+?'); + } + return regexSearchString; +} + +function highlight() { + $('#full_list li:visible').each(function(n) { + $(this).removeClass('even odd').addClass(n % 2 == 0 ? 'odd' : 'even'); + }); +} + +/** + * Expands the tree to the target element and its immediate + * children. + */ +function expandTo(path) { + var $target = $(document.getElementById('object_' + path)); + $target.addClass('clicked'); + $target.removeClass('collapsed'); + $target.parentsUntil('#full_list', 'li').removeClass('collapsed'); + if($target[0]) { + window.scrollTo(window.scrollX, $target.offset().top - 250); + highlight(); + } +} + +function windowEvents(event) { + var msg = event.data; + if (msg.action === "expand") { + expandTo(msg.path); + } + return false; +} + +window.addEventListener("message", windowEvents, false); + +$(document).ready(function() { + escapeShortcut(); + navResizer(); + enableLinks(); + enableToggles(); + populateSearchCache(); + enableSearch(); +}); + +})(); diff --git a/0.0.5/js/jquery.js b/0.0.5/js/jquery.js new file mode 100644 index 0000000..198b3ff --- /dev/null +++ b/0.0.5/js/jquery.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
      a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
      "+""+"
      ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
      t
      ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
      ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

      ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
      ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
      ","
      "],thead:[1,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],col:[2,"","
      "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
      ","
      "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
      ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/0.0.5/method_list.html b/0.0.5/method_list.html new file mode 100644 index 0000000..51d3458 --- /dev/null +++ b/0.0.5/method_list.html @@ -0,0 +1,1171 @@ + + + + + + + + + + + + + + + + + + Method List + + + +
      +
      +

      Method List

      + + + +
      + + +
      + + diff --git a/0.0.5/top-level-namespace.html b/0.0.5/top-level-namespace.html new file mode 100644 index 0000000..4b85076 --- /dev/null +++ b/0.0.5/top-level-namespace.html @@ -0,0 +1,110 @@ + + + + + + + Top Level Namespace + + — Documentation by YARD 0.9.26 + + + + + + + + + + + + + + + + + + + +
      + + +

      Top Level Namespace + + + +

      +
      + + + + + + + + + + + +
      + +

      Defined Under Namespace

      +

      + + + Modules: UnicodePlot + + + + +

      + + + + + + + + + +
      + + + +
      + + \ No newline at end of file diff --git a/CHANGES.md b/CHANGES.md deleted file mode 100644 index 9fb2839..0000000 --- a/CHANGES.md +++ /dev/null @@ -1,55 +0,0 @@ -# 0.0.5 - -- Add stairs support - [GitHub#38][GitHub#17] - [Patch by @nanobowers] - -- Add block canvas support - [GitHub#39][GitHub#19] - [Patch by @nanobowers] - -- Add stemplot support - [GitHub#40][GitHub#30] - [Patch by @nanobowers] - -- Add an example of animation - [GitHub#33] - [Patch by @mrkn and @kojix2] - -- Fix interpolation bug of lineplot - [GitHub#37][GitHub#32] - [Patch by @nanobowers] - [Reported by @Nakilon] - -- Support `color:` option in `render` method - [GitHub#45] - -- Add `canvas_types` method - [GitHub#44][GitHub#42] - [Reported by @kojix2] - -- Use appropriate message for invalid border types, - and add `border_types` method - [GitHub#43][GitHub#41] - [Reported by @kojix2] - -# 0.0.4 - -- Fix error by requiring `stringio` [#22] -- Use enumerable-statistics >= 2.0.1 to avoid a bug of histogram [#28] - -# 0.0.3 - -- Add histogram support -- Add barplot! method -- Add scatterplot support -- Add densityplot support - -# 0.0.2 - -- Add boxplot support - -# 0.0.1 - -- Add barplot support -- Add lineplot support diff --git a/Gemfile b/Gemfile index 7e6a29e..d6f717c 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ source "https://rubygems.org/" -gemspec - -gem "yard" +gem "yard", github: "mrkn/yard", branch: "module_function_decorator" +gem "kramdown" +gem "kramdown-parser-gfm" diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index 79d77d5..0000000 --- a/LICENSE.txt +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) -Copyright © 2019 Kenta Murata - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the “Software”), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/README.md b/README.md index e28ad4f..405dc53 100644 --- a/README.md +++ b/README.md @@ -1,93 +1,12 @@ -# UnicodePlot - Plot your data by Unicode characters +# UnicodePlot UnicodePlot provides the feature to make charts with Unicode characters. ## Documentation +- [0.0.5](0.0.5) +- [0.0.4](0.0.4) +- [0.0.3](0.0.3) -https://red-data-tools.github.io/unicode_plot.rb/ +## GitHub -## Install - -```console -$ gem install unicode_plot -``` - -## Usage - -```ruby -require 'unicode_plot' - -x = 0.step(3*Math::PI, by: 3*Math::PI / 30) -y_sin = x.map {|xi| Math.sin(xi) } -y_cos = x.map {|xi| Math.cos(xi) } -plot = UnicodePlot.lineplot(x, y_sin, name: "sin(x)", width: 40, height: 10) -UnicodePlot.lineplot!(plot, x, y_cos, name: "cos(x)") -plot.render -``` - -You can get the results below by running the above script: - - - -## Supported charts - -### barplot - -```ruby -UnicodePlot.barplot(data: {'foo': 20, 'bar': 50}, title: "Bar").render -``` - - - -### boxplot - -```ruby -UnicodePlot.boxplot(data: {foo: [1, 3, 5], bar: [3, 5, 7]}, title: "Box").render -``` - - - -### densityplot - -```ruby -x = Array.new(500) { 20*rand - 10 } + Array.new(500) { 6*rand - 3 } -y = Array.new(1000) { 30*rand - 10 } -UnicodePlot.densityplot(x, y, title: "Density").render -``` - - - -### histogram - -```ruby -x = Array.new(100) { rand(10) } + Array.new(100) { rand(30) + 10 } -UnicodePlot.histogram(x, title: "Histogram").render -``` - - - -### lineplot - -See [Usage](#usage) section above. - -### scatterplot - -```ruby -x = Array.new(50) { rand(20) - 10 } -y = x.map {|xx| xx*rand(30) - 10 } -UnicodePlot.scatterplot(x, y, title: "Scatter").render -``` - - - -## Acknowledgement - -This library is strongly inspired by [UnicodePlot.jl](https://github.com/Evizero/UnicodePlots.jl). - -## License - -MIT License - -## Author - -- [Kenta Murata](https://github.com/mrkn) +[red-data-tools/unicode_plot.rb](https://github.com/red-data-tools/unicode_plot.rb) diff --git a/Rakefile b/Rakefile index 53c7e96..fabf736 100644 --- a/Rakefile +++ b/Rakefile @@ -1,16 +1,91 @@ -require "bundler/gem_helper" -require "yard" +require "bundler/setup" -base_dir = File.expand_path("..", __FILE__) -helper = Bundler::GemHelper.new(base_dir) -helper.install +def clean(version) + FileUtils.rm_rf("src") + FileUtils.rm_rf(version) +end + +def clone(version) + system("git", "clone", "-b", "v#{version}", "--", ".", "src") +end + +def yard(version) + system("yard", "-o", version) +end + +def update_readme(version) + content = File.read("README.md") + File.write("README.md.orig", content) # backup -desc "Run test" -task :test do - ruby("test/run-test.rb") + File.open("README.md", "w") do |f| + versions_section = false + versions = [version] + puts_version_entries = lambda do |f| + versions.sort.reverse.each do |version| + f.puts "- [#{version}](#{version})" + end + end + content.each_line do |line| + line.chomp! + if versions_section + case line.chomp + when /\A\s*-\s*\[(.+)\]/ + versions << $1.chomp + next + else + puts_version_entries.(f) + versions_section = false + end + elsif line =~ /\A## Documentation/ + versions_section = true + end + f.puts line + end + puts_version_entries.(f) if versions_section + end end -task default: :test +def update_jekyll_config(version) + content = File.read("_config.yml") + File.write("_config.yml.orig", content) # backup + + new_entry = " - #{version}" + File.open("_config.yml", "w") do |f| + include_section = false + entries = [version] + puts_entries = lambda do |f| + entries.sort.each do |entry| + f.puts " - #{entry}" + end + end + content.each_line do |line| + line.chomp! + if include_section + case line + when /\A\s*-\s*(.+)\z/ + entries << $1 + next + else + puts_entries.(f) + include_section = false + end + elsif line =~ /\Ainclude:/ + include_section = true + end + f.puts line + end + puts_entries.(f) if include_section + end +end -YARD::Rake::YardocTask.new do |task| +task :yard, [:version] do |t, args| + unless (version = args[:version]) + $stderr.puts "version is required" + abort + end + clean(version) + clone(version) + yard(version) + update_readme(version) + update_jekyll_config(version) end diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..72a879a --- /dev/null +++ b/_config.yml @@ -0,0 +1,8 @@ +markdown: kramdown +kramdown: + input: GFM +include: + - 0.0.3 + - 0.0.4 + - 0.0.5 + - README.md diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..37ef9c6 --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,9 @@ + + + + UnicodePlot + + + {{ content }} + + diff --git a/example/animation.rb b/example/animation.rb deleted file mode 100644 index b1507f5..0000000 --- a/example/animation.rb +++ /dev/null @@ -1,37 +0,0 @@ -require "unicode_plot" -require "stringio" - -N = 1000 -M = 50 - -out = StringIO.new -def out.tty?; true; end - -shift = 0 -continue = true -Signal.trap(:INT) { continue = false } - -while continue - out.truncate(0) - - xs = 0...N - ys = xs.map {|x| Math.sin(2*Math::PI*(x + shift) / N) } - UnicodePlot.lineplot(xs, ys, width: 60, height: 15).render(out) - - lines = out.string.lines - lines.each do |line| - $stdout.print "\r#{line}" - end - $stdout.print "\e[0J" - $stdout.flush - - sleep 0.2 - - if continue - n = lines.count - $stdout.print "\e[#{n}F" - shift = (shift + M) % N - end -end - -$stdout.print "\e[0J" diff --git a/example/ex_canvases.rb b/example/ex_canvases.rb deleted file mode 100755 index 9478ed4..0000000 --- a/example/ex_canvases.rb +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/env ruby -$LOAD_PATH << "#{__dir__}/../lib" -require "unicode_plot" - -# example of line plots using different canvases -UnicodePlot.lineplot([1, 2, 7], [9, -6, 8], title: "Default Lineplot").render -UnicodePlot.lineplot([1, 2, 7], [9, -6, 8], title: "Ascii Lineplot", canvas: :ascii).render -UnicodePlot.lineplot([1, 2, 7], [9, -6, 8], title: "Dot Lineplot", canvas: :dot).render -UnicodePlot.lineplot([1, 2, 7], [9, -6, 8], title: "Block Lineplot", canvas: :block).render diff --git a/example/ex_staircase_plot.rb b/example/ex_staircase_plot.rb deleted file mode 100755 index b72c3b6..0000000 --- a/example/ex_staircase_plot.rb +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/env ruby - -$LOAD_PATH << "#{__dir__}/../lib" -require "unicode_plot" - -# single plot at a time -UnicodePlot.stairs([1, 2, 4, 7, 8], [1, 3, 4, 2, 7], style: :post).render - -# pre: style -UnicodePlot.stairs([1, 2, 4, 7, 8], [1, 3, 4, 2, 7], style: :pre).render - -# Another single plot with title -UnicodePlot.stairs([2, 3, 5, 6, 9], [2, 5, 3, 4, 2], title: "My Staircase Plot").render - -# Two plots at a time. -# Using an explicit limit because data for the 2nd plot is outside the bounds from the 1st plot -plot = UnicodePlot.stairs([1, 2, 4, 7, 8], [1, 3, 4, 2, 7], title: "Two Staircases", xlim: [1,10] ) -UnicodePlot.stairs!(plot, [0, 3, 5, 6, 9], [2, 5, 3, 4, 0]) -plot.render - - diff --git a/example/ex_stemplot.rb b/example/ex_stemplot.rb deleted file mode 100755 index c7b3db7..0000000 --- a/example/ex_stemplot.rb +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/env ruby -# coding: utf-8 -$LOAD_PATH << "#{__dir__}/../lib" -require "unicode_plot" - -fifty_floats = 50.times.map { rand(-1000..1000)/350.0 } -eighty_ints = 80.times.map { rand(1..100) } -another_eighty_ints = 80.times.map { rand(1..100) } -three_hundred_ints = 300.times.map { rand(-100..100) } - -UnicodePlot.stemplot(eighty_ints) - -UnicodePlot.stemplot(three_hundred_ints) - -UnicodePlot.stemplot(fifty_floats, scale: 1) - -UnicodePlot.stemplot(fifty_floats, scale: 1, divider: "😄") - -UnicodePlot.stemplot(eighty_ints, another_eighty_ints) - -# Examples with strings - -words_1 = %w[apple junk ant age bee bar baz dog egg a] -words_2 = %w[ape flan can cat juice elf gnome child fruit] - -UnicodePlot.stemplot(words_1) - -UnicodePlot.stemplot(words_1, words_2) - - -UnicodePlot.stemplot(words_1, scale: 100, trim: true) - -UnicodePlot.stemplot(words_1, scale: 100, trim: true, string_padchar: '?') - -floats = (-8..8).to_a.map { |a| a / 2.0 } -UnicodePlot.stemplot(floats, scale: 1) diff --git a/example/issue32.rb b/example/issue32.rb deleted file mode 100755 index 0d10037..0000000 --- a/example/issue32.rb +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/env ruby - -$LOAD_PATH << "#{__dir__}/../lib" -require "unicode_plot" - -ys = [261, 272, 277, 283, 289, 294, 298, 305, 309, 314, 319, 320, 322, 323, 324] - -xs = ys.size.times.to_a - -UnicodePlot.lineplot(xs, ys, height: 26, ylim: [0, 700]).render - diff --git a/lib/unicode_plot.rb b/lib/unicode_plot.rb deleted file mode 100644 index 8a0ba57..0000000 --- a/lib/unicode_plot.rb +++ /dev/null @@ -1,23 +0,0 @@ -require 'stringio' - -require 'unicode_plot/version' - -require 'unicode_plot/io_context' -require 'unicode_plot/utils' -require 'unicode_plot/styled_printer' -require 'unicode_plot/value_transformer' -require 'unicode_plot/renderer' - -require 'unicode_plot/canvas' - -require 'unicode_plot/plot' -require 'unicode_plot/grid_plot' - -require 'unicode_plot/barplot' -require 'unicode_plot/boxplot' -require 'unicode_plot/densityplot' -require 'unicode_plot/lineplot' -require 'unicode_plot/histogram' -require 'unicode_plot/scatterplot' -require 'unicode_plot/stairs' -require 'unicode_plot/stemplot' diff --git a/lib/unicode_plot/barplot.rb b/lib/unicode_plot/barplot.rb deleted file mode 100644 index 781ce55..0000000 --- a/lib/unicode_plot/barplot.rb +++ /dev/null @@ -1,206 +0,0 @@ -module UnicodePlot - class Barplot < Plot - include ValueTransformer - - MIN_WIDTH = 10 - DEFAULT_COLOR = :green - DEFAULT_SYMBOL = "■" - - def initialize(bars, width, color, symbol, transform, **kw) - if symbol.length > 1 - raise ArgumentError, "symbol must be a single character" - end - @bars = bars - @symbol = symbol - @max_freq, i = find_max(transform_values(transform, bars)) - @max_len = bars[i].to_s.length - @width = [width, max_len + 7, MIN_WIDTH].max - @color = color - @symbol = symbol - @transform = transform - super(**kw) - end - - attr_reader :max_freq - attr_reader :max_len - attr_reader :width - - def n_rows - @bars.length - end - - def n_columns - @width - end - - def add_row!(bars) - @bars.concat(bars) - @max_freq, i = find_max(transform_values(@transform, bars)) - @max_len = @bars[i].to_s.length - end - - def print_row(out, row_index) - check_row_index(row_index) - bar = @bars[row_index] - max_bar_width = [width - 2 - max_len, 1].max - val = transform_values(@transform, bar) - bar_len = max_freq > 0 ? - ([val, 0].max.fdiv(max_freq) * max_bar_width).round : - 0 - bar_str = max_freq > 0 ? @symbol * bar_len : "" - bar_lbl = bar.to_s - print_styled(out, bar_str, color: @color) - print_styled(out, " ", bar_lbl, color: :normal) - pan_len = [max_bar_width + 1 + max_len - bar_len - bar_lbl.length, 0].max - pad = " " * pan_len.round - out.print(pad) - end - - private def find_max(values) - i = j = 0 - max = values[i] - while j < values.length - if values[j] > max - i, max = j, values[j] - end - j += 1 - end - [max, i] - end - end - - # @overload barplot(text, heights, xscale: nil, title: nil, xlabel: nil, ylabel: nil, labels: true, border: :barplot, margin: Plot::DEFAULT_MARGIN, padding: Plot::DEFAULT_PADDING, color: Barplot::DEFAULT_COLOR, width: Plot::DEFAULT_WIDTH, symbol: Barplot::DEFAULT_SYMBOL) - # - # Draws a horizontal barplot. - # - # @param text [Array] The labels / captions of the bars. - # @param heights [Array] The values / heights of the bars. - # @param xscale [nil,:log,:ln,:log10,:lg,:log2,:lb,callable] - # A function name symbol or callable object to transform the bar - # length before plotting. This effectively scales the x-axis - # without influencing the captions of the individual bars. - # e.g. use `xscale: :log10` for logscale. - # @param title - # @param xlabel - # @param ylabel - # @param labels - # @param border - # @param margin - # @param padding - # @param color - # @param width - # @param symbol [String] Specifies the character that should be used - # to render the bars. - # - # @return [Barplot] A plot object. - # - # @example Example usage of barplot on IRB: - # - # >> UnicodePlot.barplot(["Paris", "New York", "Moskau", "Madrid"], - # [2.244, 8.406, 11.92, 3.165], - # xlabel: "population [in mil]").render - # ┌ ┐ - # Paris ┤■■■■■■ 2.244 - # New York ┤■■■■■■■■■■■■■■■■■■■■■■■ 8.406 - # Moskau ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 11.92 - # Madrid ┤■■■■■■■■■ 3.165 - # └ ┘ - # population [in mil] - # => nil - # - # @see Plot - # @see histogram - # @see Barplot - # - # @overload barplot(data, **kwargs) - # - # The different variation of barplot described above. - # - # @param data [Hash] A hash in which the keys will be used as `text` and - # the values will be utilized as `heights`. - # @param kwargs Optional keyword arguments same as ones described above. - # @return [Barplot] A plot object. - module_function def barplot(*args, - width: Plot::DEFAULT_WIDTH, - color: Barplot::DEFAULT_COLOR, - symbol: Barplot::DEFAULT_SYMBOL, - border: :barplot, - xscale: nil, - xlabel: nil, - data: nil, - **kw) - case args.length - when 0 - data = Hash(data) - keys = data.keys.map(&:to_s) - heights = data.values - when 2 - keys = Array(args[0]) - heights = Array(args[1]) - else - raise ArgumentError, "invalid arguments" - end - - unless keys.length == heights.length - raise ArgumentError, "The given vectors must be of the same length" - end - unless heights.min >= 0 - raise ArgumentError, "All values have to be positive. Negative bars are not supported." - end - - xlabel ||= ValueTransformer.transform_name(xscale) - plot = Barplot.new(heights, width, color, symbol, xscale, - border: border, xlabel: xlabel, - **kw) - keys.each_with_index do |key, i| - plot.annotate_row!(:l, i, key) - end - - plot - end - - # @overload barplot!(plot, text, heights) - # - # Draw additional bars on the given existing plot. - # - # @param plot [Barplot] the existing plot. - # @return [Barplot] A plot object. - # - # @see barplot - # - # @overload barplot!(plot, data) - # - # The different variation of `barplot!` that takes the plotting data in a hash. - # - # @param plot [Barplot] the existing plot. - # @return [Barplot] A plot object. - module_function def barplot!(plot, - *args, - data: nil) - case args.length - when 0 - data = Hash(data) - keys = data.keys.map(&:to_s) - heights = data.values - when 2 - keys = Array(args[0]) - heights = Array(args[1]) - else - raise ArgumentError, "invalid arguments" - end - - unless keys.length == heights.length - raise ArgumentError, "The given vectors must be of the same length" - end - if keys.empty? - raise ArgumentError, "Can't append empty array to barplot" - end - - cur_idx = plot.n_rows - plot.add_row!(heights) - keys.each_with_index do |key, i| - plot.annotate_row!(:l, cur_idx + i, key) - end - plot - end -end diff --git a/lib/unicode_plot/boxplot.rb b/lib/unicode_plot/boxplot.rb deleted file mode 100644 index aa65c86..0000000 --- a/lib/unicode_plot/boxplot.rb +++ /dev/null @@ -1,189 +0,0 @@ -require 'enumerable/statistics' - -module UnicodePlot - class Boxplot < Plot - MIN_WIDTH = 10 - DEFAULT_COLOR = :green - - def initialize(data, width, color, min_x, max_x, **kw) - if min_x == max_x - min_x -= 1 - max_x += 1 - end - width = [width, MIN_WIDTH].max - @data = [data.percentile([0, 25, 50, 75, 100])] - @color = color - @width = [width, MIN_WIDTH].max - @min_x = min_x - @max_x = max_x - super(**kw) - end - - attr_reader :min_x - attr_reader :max_x - - def n_data - @data.length - end - - def n_rows - 3 * @data.length - end - - def n_columns - @width - end - - def add_series!(data) - mi, ma = data.minmax - @data << data.percentile([0, 25, 50, 75, 100]) - @min_x = [mi, @min_x].min - @max_x = [ma, @max_x].max - end - - def print_row(out, row_index) - check_row_index(row_index) - series = @data[(row_index / 3.0).to_i] - - series_row = row_index % 3 - - min_char = ['╷', '├' , '╵'][series_row] - line_char = [' ', '─' , ' '][series_row] - left_box_char = ['┌', '┤' , '└'][series_row] - line_box_char = ['─', ' ' , '─'][series_row] - median_char = ['┬', '│' , '┴'][series_row] - right_box_char = ['┐', '├' , '┘'][series_row] - max_char = ['╷', '┤' , '╵'][series_row] - - line = (0 ... @width).map { ' ' } - - # Draw shapes first - this is most important, - # so they'll always be drawn even if there's not enough space - - transformed = transform(series) - line[transformed[0] - 1] = min_char - line[transformed[1] - 1] = left_box_char - line[transformed[2] - 1] = median_char - line[transformed[3] - 1] = right_box_char - line[transformed[4] - 1] = max_char - - (transformed[0] ... (transformed[1] - 1)).each do |i| - line[i] = line_char - end - (transformed[1] ... (transformed[2] - 1)).each do |i| - line[i] = line_box_char - end - (transformed[2] ... (transformed[3] - 1)).each do |i| - line[i] = line_box_char - end - (transformed[3] ... (transformed[4] - 1)).each do |i| - line[i] = line_char - end - - print_styled(out, line.join(''), color: @color) - end - - private def transform(values) - values.map do |val| - val = (val - @min_x).fdiv(@max_x - @min_x) * @width - val.round(half: :even).clamp(1, @width).to_i - end - end - end - - module_function def boxplot(*args, - data: nil, - border: :corners, - color: Boxplot::DEFAULT_COLOR, - width: Plot::DEFAULT_WIDTH, - xlim: [0, 0], - **kw) - case args.length - when 0 - data = Hash(data) - text = data.keys - data = data.values - when 1 - data = args[0] - when 2 - text = Array(args[0]) - data = args[1] - else - raise ArgumentError, "wrong number of arguments" - end - - case data[0] - when Numeric - data = [data] - when Array - # do nothing - else - data = data.to_ary - end - text ||= Array.new(data.length, "") - - unless text.length == data.length - raise ArgumentError, "wrong number of text" - end - - unless xlim.length == 2 - raise ArgumentError, "xlim must be a length 2 array" - end - - min_x, max_x = Utils.extend_limits(data.map(&:minmax).flatten, xlim) - width = [width, Boxplot::MIN_WIDTH].max - - plot = Boxplot.new(data[0], width, color, min_x, max_x, - border: border, **kw) - (1 ... data.length).each do |i| - plot.add_series!(data[i]) - end - - mean_x = (min_x + max_x) / 2.0 - min_x_str = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s - mean_x_str = (Utils.roundable?(mean_x) ? mean_x.round : mean_x).to_s - max_x_str = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s - plot.annotate!(:bl, min_x_str, color: :light_black) - plot.annotate!(:b, mean_x_str, color: :light_black) - plot.annotate!(:br, max_x_str, color: :light_black) - - text.each_with_index do |name, i| - plot.annotate_row!(:l, i*3+1, name) if name.length > 0 - end - - plot - end - - module_function def boxplot!(plot, *args, **kw) - case args.length - when 1 - data = args[0] - name = kw[:name] || "" - when 2 - name = args[0] - data = args[1] - else - raise ArgumentError, "wrong number of arguments" - end - - if data.empty? - raise ArgumentError, "Can't append empty array to boxplot" - end - - plot.add_series!(data) - - plot.annotate_row!(:l, (plot.n_data - 1)*3+1, name) if name && name != "" - - min_x = plot.min_x - max_x = plot.max_x - mean_x = (min_x + max_x) / 2.0 - min_x_str = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s - mean_x_str = (Utils.roundable?(mean_x) ? mean_x.round : mean_x).to_s - max_x_str = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s - plot.annotate!(:bl, min_x_str, color: :light_black) - plot.annotate!(:b, mean_x_str, color: :light_black) - plot.annotate!(:br, max_x_str, color: :light_black) - - plot - end -end diff --git a/lib/unicode_plot/canvas.rb b/lib/unicode_plot/canvas.rb deleted file mode 100644 index 324b063..0000000 --- a/lib/unicode_plot/canvas.rb +++ /dev/null @@ -1,178 +0,0 @@ -module UnicodePlot - class Canvas - include BorderPrinter - - CANVAS_CLASS_MAP = {} - - def self.create(canvas_type, width, height, **kw) - canvas_class = CANVAS_CLASS_MAP[canvas_type] - case canvas_class - when Class - canvas_class.new(width, height, **kw) - else - raise ArgumentError, "unknown canvas type: #{canvas_type}" - end - end - - def initialize(width, height, pixel_width, pixel_height, fill_char, - origin_x: 0, - origin_y: 0, - plot_width: 1, - plot_height: 1, - x_pixel_per_char: 1, - y_pixel_per_char: 1) - @width = width - @height = height - @pixel_width = check_positive(pixel_width, :pixel_width) - @pixel_height = check_positive(pixel_height, :pixel_height) - @origin_x = origin_x - @origin_y = origin_y - @plot_width = plot_width - @plot_height = plot_height - @x_pixel_per_char = x_pixel_per_char - @y_pixel_per_char = y_pixel_per_char - @grid = Array.new(@width * @height, fill_char) - @colors = Array.new(@width * @height, COLOR_ENCODE[:normal]) - end - - attr_reader :width - attr_reader :height - attr_reader :pixel_width - attr_reader :pixel_height - attr_reader :origin_x - attr_reader :origin_y - attr_reader :plot_width - attr_reader :plot_height - attr_reader :x_pixel_per_char - attr_reader :y_pixel_per_char - - def show(out) - b = BorderMaps::BORDER_SOLID - border_length = width - - print_border_top(out, "", border_length, :solid, color: :light_black) - out.puts - (0 ... height).each do |row_index| - print_styled(out, b[:l], color: :light_black) - print_row(out, row_index) - print_styled(out, b[:r], color: :light_black) - out.puts - end - print_border_bottom(out, "", border_length, :solid, color: :light_black) - end - - def print(out) - (0 ... height).each do |row_index| - print_row(out, row_index) - out.puts if row_index < height - 1 - end - end - - def char_at(x, y) - @grid[index_at(x, y)] - end - - def color_at(x, y) - @colors[index_at(x, y)] - end - - def index_at(x, y) - return nil unless 0 <= x && x < width && 0 <= y && y < height - y * width + x - end - - def point!(x, y, color) - unless origin_x <= x && x <= origin_x + plot_width && - origin_y <= y && y <= origin_y + plot_height - return color - end - - plot_offset_x = x - origin_x - pixel_x = plot_offset_x.fdiv(plot_width) * pixel_width - - plot_offset_y = y - origin_y - pixel_y = pixel_height - plot_offset_y.fdiv(plot_height) * pixel_height - - pixel!(pixel_x.floor, pixel_y.floor, color) - end - - def points!(x, y, color = :normal) - if x.length != y.length - raise ArgumentError, "x and y must be the same length" - end - unless x.length > 0 - raise ArgumentError, "x and y must not be empty" - end - (0 ... x.length).each do |i| - point!(x[i], y[i], color) - end - end - - # digital differential analyzer algorithm - def line!(x1, y1, x2, y2, color) - if (x1 < origin_x && x2 < origin_x) || - (x1 > origin_x + plot_width && x2 > origin_x + plot_width) - return color - end - if (y1 < origin_y && y2 < origin_y) || - (y1 > origin_y + plot_height && y2 > origin_y + plot_height) - return color - end - - toff = x1 - origin_x - px1 = toff.fdiv(plot_width) * pixel_width - toff = x2 - origin_x - px2 = toff.fdiv(plot_width) * pixel_width - - toff = y1 - origin_y - py1 = pixel_height - toff.fdiv(plot_height) * pixel_height - toff = y2 - origin_y - py2 = pixel_height - toff.fdiv(plot_height) * pixel_height - - dx = px2 - px1 - dy = py2 - py1 - nsteps = dx.abs > dy.abs ? dx.abs : dy.abs - inc_x = dx.fdiv(nsteps) - inc_y = dy.fdiv(nsteps) - - cur_x = px1 - cur_y = py1 - pixel!(cur_x.floor, cur_y.floor, color) - 1.upto(nsteps) do |i| - cur_x += inc_x - cur_y += inc_y - pixel!(cur_x.floor, cur_y.floor, color) - end - color - end - - def lines!(x, y, color = :normal) - if x.length != y.length - raise ArgumentError, "x and y must be the same length" - end - unless x.length > 0 - raise ArgumentError, "x and y must not be empty" - end - (0 ... (x.length - 1)).each do |i| - line!(x[i], y[i], x[i+1], y[i+1], color) - end - end - - private def check_positive(value, name) - return value if value > 0 - raise ArgumentError, "#{name} has to be positive" - end - end - - def self.canvas_types - Canvas::CANVAS_CLASS_MAP.keys - end -end - -require_relative 'canvas/ascii_canvas' -require_relative 'canvas/block_canvas' -require_relative 'canvas/braille_canvas' -require_relative 'canvas/density_canvas' -require_relative 'canvas/dot_canvas' - -UnicodePlot::Canvas::CANVAS_CLASS_MAP.freeze diff --git a/lib/unicode_plot/canvas/ascii_canvas.rb b/lib/unicode_plot/canvas/ascii_canvas.rb deleted file mode 100644 index 1b8c81e..0000000 --- a/lib/unicode_plot/canvas/ascii_canvas.rb +++ /dev/null @@ -1,124 +0,0 @@ -require_relative 'lookup_canvas' - -module UnicodePlot - class AsciiCanvas < LookupCanvas - Canvas::CANVAS_CLASS_MAP[:ascii] = self - - ASCII_SIGNS = [ - [ 0b100_000_000, 0b000_100_000, 0b000_000_100 ].freeze, - [ 0b010_000_000, 0b000_010_000, 0b000_000_010 ].freeze, - [ 0b001_000_000, 0b000_001_000, 0b000_000_001 ].freeze - ].freeze - - ASCII_LOOKUP = { - 0b101_000_000 => '"', - 0b111_111_111 => '@', - #0b011_110_011 => '$', - 0b010_000_000 => '\'', - 0b010_100_010 => '(', - 0b010_001_010 => ')', - 0b000_010_000 => '*', - 0b010_111_010 => '+', - 0b000_010_010 => ',', - 0b000_100_100 => ',', - 0b000_001_001 => ',', - 0b000_111_000 => '-', - 0b000_000_010 => '.', - 0b000_000_100 => '.', - 0b000_000_001 => '.', - 0b001_010_100 => '/', - 0b010_100_000 => '/', - 0b001_010_110 => '/', - 0b011_010_010 => '/', - 0b001_010_010 => '/', - 0b110_010_111 => '1', - #0b111_010_100 => '7', - 0b010_000_010 => ':', - 0b111_000_111 => '=', - #0b010_111_101 => 'A', - #0b011_100_011 => 'C', - #0b110_101_110 => 'D', - #0b111_110_100 => 'F', - #0b011_101_011 => 'G', - #0b101_111_101 => 'H', - 0b111_010_111 => 'I', - #0b011_001_111 => 'J', - #0b101_110_101 => 'K', - 0b100_100_111 => 'L', - #0b111_111_101 => 'M', - #0b101_101_101 => 'N', - #0b111_101_111 => 'O', - #0b111_111_100 => 'P', - 0b111_010_010 => 'T', - #0b101_101_111 => 'U', - 0b101_101_010 => 'V', - #0b101_111_111 => 'W', - 0b101_010_101 => 'X', - 0b101_010_010 => 'Y', - 0b110_100_110 => '[', - 0b010_001_000 => '\\', - 0b100_010_001 => '\\', - 0b110_010_010 => '\\', - 0b100_010_011 => '\\', - 0b100_010_010 => '\\', - 0b011_001_011 => ']', - 0b010_101_000 => '^', - 0b000_000_111 => '_', - 0b100_000_000 => '`', - #0b000_111_111 => 'a', - #0b100_111_111 => 'b', - #0b001_111_111 => 'd', - #0b001_111_010 => 'f', - #0b100_111_101 => 'h', - #0b100_101_101 => 'k', - 0b110_010_011 => 'l', - #0b000_111_101 => 'n', - 0b000_111_100 => 'r', - #0b000_101_111 => 'u', - 0b000_101_010 => 'v', - 0b011_110_011 => '{', - 0b010_010_010 => '|', - 0b100_100_100 => '|', - 0b001_001_001 => '|', - 0b110_011_110 => '}', - }.freeze - - ascii_lookup_key_order = [ - 0x0002, 0x00d2, 0x0113, 0x00a0, 0x0088, - 0x002a, 0x0100, 0x0197, 0x0012, 0x0193, - 0x0092, 0x0082, 0x008a, 0x0054, 0x0004, - 0x01d2, 0x01ff, 0x0124, 0x00a8, 0x0056, - 0x0001, 0x01c7, 0x0052, 0x0080, 0x0009, - 0x00cb, 0x0007, 0x003c, 0x0111, 0x0140, - 0x0024, 0x0127, 0x0192, 0x0010, 0x019e, - 0x01a6, 0x01d7, 0x0155, 0x00a2, 0x00ba, - 0x0112, 0x0049, 0x00f3, 0x0152, 0x0038, - 0x016a - ] - - ASCII_DECODE = [' '] - - 1.upto(0b111_111_111) do |i| - min_key = ascii_lookup_key_order.min_by {|k| (i ^ k).digits(2).sum } - ASCII_DECODE[i] = ASCII_LOOKUP[min_key] - end - - ASCII_DECODE.freeze - - PIXEL_PER_CHAR = 3 - - def initialize(width, height, **kw) - super(width, height, - PIXEL_PER_CHAR, PIXEL_PER_CHAR, - **kw) - end - - def lookup_encode(x, y) - ASCII_SIGNS[x][y] - end - - def lookup_decode(code) - ASCII_DECODE[code] - end - end -end diff --git a/lib/unicode_plot/canvas/block_canvas.rb b/lib/unicode_plot/canvas/block_canvas.rb deleted file mode 100644 index 942b995..0000000 --- a/lib/unicode_plot/canvas/block_canvas.rb +++ /dev/null @@ -1,38 +0,0 @@ -module UnicodePlot - # The `BlockCanvas` is also Unicode-based. - # It has half the resolution of the `BrailleCanvas`. - # In contrast to BrailleCanvas, the pixels don't - # have visible spacing between them. - # This canvas effectively turns every character - # into 4 pixels that can individually be manipulated - # using binary operations. - class BlockCanvas < LookupCanvas - Canvas::CANVAS_CLASS_MAP[:block] = self - - X_PIXEL_PER_CHAR = 2 - Y_PIXEL_PER_CHAR = 2 - - def initialize(width, height, fill_char=0, **kw) - super(width, height, - X_PIXEL_PER_CHAR, - Y_PIXEL_PER_CHAR, - fill_char, - **kw) - end - - BLOCK_SIGNS = [ - [0b1000, 0b0010].freeze, - [0b0100, 0b0001].freeze - ].freeze - - BLOCK_DECODE = [ - -' ', -'▗', -'▖', -'▄', - -'▝', -'▐', -'▞', -'▟', - -'▘', -'▚', -'▌', -'▙', - -'▀', -'▜', -'▛', -'█' - ].freeze - - def lookup_encode(x,y) ; BLOCK_SIGNS[x][y] ; end - def lookup_decode(x) ; BLOCK_DECODE[x] ; end - end -end diff --git a/lib/unicode_plot/canvas/braille_canvas.rb b/lib/unicode_plot/canvas/braille_canvas.rb deleted file mode 100644 index 58c88b6..0000000 --- a/lib/unicode_plot/canvas/braille_canvas.rb +++ /dev/null @@ -1,66 +0,0 @@ -module UnicodePlot - class BrailleCanvas < Canvas - Canvas::CANVAS_CLASS_MAP[:braille] = self - - X_PIXEL_PER_CHAR = 2 - Y_PIXEL_PER_CHAR = 4 - - BRAILLE_SIGNS = [ - [ - 0x2801, - 0x2802, - 0x2804, - 0x2840, - ].freeze, - [ - 0x2808, - 0x2810, - 0x2820, - 0x2880 - ].freeze - ].freeze - - def initialize(width, height, **kw) - super(width, height, - width * X_PIXEL_PER_CHAR, - height * Y_PIXEL_PER_CHAR, - "\u{2800}", - x_pixel_per_char: X_PIXEL_PER_CHAR, - y_pixel_per_char: Y_PIXEL_PER_CHAR, - **kw) - end - - def pixel!(pixel_x, pixel_y, color) - unless 0 <= pixel_x && pixel_x <= pixel_width && - 0 <= pixel_y && pixel_y <= pixel_height - return color - end - pixel_x -= 1 unless pixel_x < pixel_width - pixel_y -= 1 unless pixel_y < pixel_height - tx = pixel_x.fdiv(pixel_width) * width - char_x = tx.floor + 1 - char_x_off = pixel_x % X_PIXEL_PER_CHAR + 1 - char_x += 1 if char_x < tx.round + 1 && char_x_off == 1 - - char_y_off = pixel_y % Y_PIXEL_PER_CHAR + 1 - char_y = ((pixel_y - (char_y_off - 1)) / Y_PIXEL_PER_CHAR) + 1 - - index = index_at(char_x - 1, char_y - 1) - if index - @grid[index] = (@grid[index].ord | BRAILLE_SIGNS[char_x_off - 1][char_y_off - 1]).chr(Encoding::UTF_8) - @colors[index] |= COLOR_ENCODE[color] - end - color - end - - def print_row(out, row_index) - unless 0 <= row_index && row_index < height - raise ArgumentError, "row_index out of bounds" - end - y = row_index - (0 ... width).each do |x| - print_color(out, color_at(x, y), char_at(x, y)) - end - end - end -end diff --git a/lib/unicode_plot/canvas/density_canvas.rb b/lib/unicode_plot/canvas/density_canvas.rb deleted file mode 100644 index 4d9c5b3..0000000 --- a/lib/unicode_plot/canvas/density_canvas.rb +++ /dev/null @@ -1,58 +0,0 @@ -module UnicodePlot - class DensityCanvas < Canvas - Canvas::CANVAS_CLASS_MAP[:density] = self - - DENSITY_SIGNS = [" ", "░", "▒", "▓", "█"].freeze - - MIN_WIDTH = 5 - MIN_HEIGHT = 5 - - X_PIXEL_PER_CHAR = 1 - Y_PIXEL_PER_CHAR = 2 - - def initialize(width, height, **kw) - width = [width, MIN_WIDTH].max - height = [height, MIN_HEIGHT].max - @max_density = 1 - super(width, height, - width * X_PIXEL_PER_CHAR, - height * Y_PIXEL_PER_CHAR, - 0, - x_pixel_per_char: X_PIXEL_PER_CHAR, - y_pixel_per_char: Y_PIXEL_PER_CHAR, - **kw) - end - - def pixel!(pixel_x, pixel_y, color) - unless 0 <= pixel_x && pixel_x <= pixel_width && - 0 <= pixel_y && pixel_y <= pixel_height - return color - end - - pixel_x -= 1 unless pixel_x < pixel_width - pixel_y -= 1 unless pixel_y < pixel_height - - char_x = (pixel_x.fdiv(pixel_width) * width).floor - char_y = (pixel_y.fdiv(pixel_height) * height).floor - - index = index_at(char_x, char_y) - @grid[index] += 1 - @max_density = [@max_density, @grid[index]].max - @colors[index] |= COLOR_ENCODE[color] - color - end - - def print_row(out, row_index) - unless 0 <= row_index && row_index < height - raise ArgumentError, "row_index out of bounds" - end - y = row_index - den_sign_count = DENSITY_SIGNS.length - val_scale = (den_sign_count - 1).fdiv(@max_density) - (0 ... width).each do |x| - den_index = (char_at(x, y) * val_scale).round - print_color(out, color_at(x, y), DENSITY_SIGNS[den_index]) - end - end - end -end diff --git a/lib/unicode_plot/canvas/dot_canvas.rb b/lib/unicode_plot/canvas/dot_canvas.rb deleted file mode 100644 index 8d6b39f..0000000 --- a/lib/unicode_plot/canvas/dot_canvas.rb +++ /dev/null @@ -1,36 +0,0 @@ -module UnicodePlot - class DotCanvas < LookupCanvas - Canvas::CANVAS_CLASS_MAP[:dot] = self - - DOT_SIGNS = [ - [ - 0b10, - 0b01 - ].freeze - ].freeze - - DOT_DECODE = [ - -' ', # 0b00 - -'.', # 0b01 - -"'", # 0b10 - -':', # 0b11 - ].freeze - - X_PIXEL_PER_CHAR = 1 - Y_PIXEL_PER_CHAR = 2 - - def initialize(width, height, **kw) - super(width, height, - X_PIXEL_PER_CHAR, Y_PIXEL_PER_CHAR, - **kw) - end - - def lookup_encode(x, y) - DOT_SIGNS[x][y] - end - - def lookup_decode(code) - DOT_DECODE[code] - end - end -end diff --git a/lib/unicode_plot/canvas/lookup_canvas.rb b/lib/unicode_plot/canvas/lookup_canvas.rb deleted file mode 100644 index 99a25d5..0000000 --- a/lib/unicode_plot/canvas/lookup_canvas.rb +++ /dev/null @@ -1,46 +0,0 @@ -module UnicodePlot - class LookupCanvas < Canvas - def initialize(width, height, x_pixel_per_char, y_pixel_per_char, fill_char=0, **kw) - super(width, height, - width * x_pixel_per_char, - height * y_pixel_per_char, - fill_char, - x_pixel_per_char: x_pixel_per_char, - y_pixel_per_char: y_pixel_per_char, - **kw) - end - - def pixel!(pixel_x, pixel_y, color) - unless 0 <= pixel_x && pixel_x <= pixel_width && - 0 <= pixel_y && pixel_y <= pixel_height - return color - end - pixel_x -= 1 unless pixel_x < pixel_width - pixel_y -= 1 unless pixel_y < pixel_height - - tx = pixel_x.fdiv(pixel_width) * width - char_x = tx.floor + 1 - char_x_off = pixel_x % x_pixel_per_char + 1 - char_x += 1 if char_x < tx.round + 1 && char_x_off == 1 - - char_y_off = pixel_y % y_pixel_per_char + 1 - char_y = ((pixel_y - (char_y_off - 1)) / y_pixel_per_char) + 1 - - index = index_at(char_x - 1, char_y - 1) - if index - @grid[index] |= lookup_encode(char_x_off - 1, char_y_off - 1) - @colors[index] |= COLOR_ENCODE[color] - end - end - - def print_row(out, row_index) - unless 0 <= row_index && row_index < height - raise ArgumentError, "row_index out of bounds" - end - y = row_index - (0 ... width).each do |x| - print_color(out, color_at(x, y), lookup_decode(char_at(x, y))) - end - end - end -end diff --git a/lib/unicode_plot/densityplot.rb b/lib/unicode_plot/densityplot.rb deleted file mode 100644 index 3756294..0000000 --- a/lib/unicode_plot/densityplot.rb +++ /dev/null @@ -1,10 +0,0 @@ -module UnicodePlot - module_function def densityplot(x, y, color: :auto, grid: false, name: "", **kw) - plot = GridPlot.new(x, y, :density, grid: grid, **kw) - scatterplot!(plot, x, y, color: color, name: name) - end - - module_function def densityplot!(plot, x, y, **kw) - scatterplot!(plot, x, y, **kw) - end -end diff --git a/lib/unicode_plot/grid_plot.rb b/lib/unicode_plot/grid_plot.rb deleted file mode 100644 index 1cf9c3d..0000000 --- a/lib/unicode_plot/grid_plot.rb +++ /dev/null @@ -1,100 +0,0 @@ -module UnicodePlot - class GridPlot < Plot - MIN_WIDTH = 5 - MIN_HEIGHT = 2 - DEFAULT_HEIGHT = 15 - - def initialize(x, y, canvas, - width: DEFAULT_WIDTH, - height: DEFAULT_HEIGHT, - xlim: [0, 0], - ylim: [0, 0], - grid: true, - **kw) - if x.length != y.length - raise ArgumentError, "x and y must be the same length" - end - unless x.length > 0 - raise ArgumentError, "x and y must not be empty" - end - unless xlim.length == 2 && ylim.length == 2 - raise ArgumentError, "xlim and ylim must be 2-length arrays" - end - width = [width, MIN_WIDTH].max - height = [height, MIN_HEIGHT].max - min_x, max_x = Utils.extend_limits(x, xlim) - min_y, max_y = Utils.extend_limits(y, ylim) - origin_x = min_x - origin_y = min_y - plot_width = max_x - origin_x - plot_height = max_y - origin_y - @canvas = Canvas.create(canvas, width, height, - origin_x: origin_x, - origin_y: origin_y, - plot_width: plot_width, - plot_height: plot_height) - super(**kw) - - min_x_str = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s - max_x_str = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s - min_y_str = (Utils.roundable?(min_y) ? min_y.round : min_y).to_s - max_y_str = (Utils.roundable?(max_y) ? max_y.round : max_y).to_s - - annotate_row!(:l, 0, max_y_str, color: :light_black) - annotate_row!(:l, height-1, min_y_str, color: :light_black) - annotate!(:bl, min_x_str, color: :light_black) - annotate!(:br, max_x_str, color: :light_black) - - if grid - if min_y < 0 && 0 < max_y - step = plot_width.fdiv(width * @canvas.x_pixel_per_char - 1) - min_x.step(max_x, by: step) do |i| - @canvas.point!(i, 0, :normal) - end - end - if min_x < 0 && 0 < max_x - step = plot_height.fdiv(height * @canvas.y_pixel_per_char - 1) - min_y.step(max_y, by: step) do |i| - @canvas.point!(0, i, :normal) - end - end - end - end - - def origin_x - @canvas.origin_x - end - - def origin_y - @canvas.origin_y - end - - def plot_width - @canvas.plot_width - end - - def plot_height - @canvas.plot_height - end - - def n_rows - @canvas.height - end - - def n_columns - @canvas.width - end - - def points!(x, y, color) - @canvas.points!(x, y, color) - end - - def lines!(x, y, color) - @canvas.lines!(x, y, color) - end - - def print_row(out, row_index) - @canvas.print_row(out, row_index) - end - end -end diff --git a/lib/unicode_plot/histogram.rb b/lib/unicode_plot/histogram.rb deleted file mode 100644 index 75afa23..0000000 --- a/lib/unicode_plot/histogram.rb +++ /dev/null @@ -1,48 +0,0 @@ -require 'enumerable/statistics' - -module UnicodePlot - module_function def histogram(x, - nbins: nil, - closed: :left, - symbol: "▇", - **kw) - hist = x.histogram(*[nbins].compact, closed: closed) - edge, counts = hist.edge, hist.weights - labels = [] - bin_width = edge[1] - edge[0] - pad_left, pad_right = 0, 0 - (0 ... edge.length).each do |i| - val1 = Utils.float_round_log10(edge[i], bin_width) - val2 = Utils.float_round_log10(val1 + bin_width, bin_width) - a1 = val1.to_s.split('.', 2).map(&:length) - a2 = val2.to_s.split('.', 2).map(&:length) - pad_left = [pad_left, a1[0], a2[0]].max - pad_right = [pad_right, a1[1], a2[1]].max - end - l_str = hist.closed == :right ? "(" : "[" - r_str = hist.closed == :right ? "]" : ")" - counts.each_with_index do |n, i| - val1 = Utils.float_round_log10(edge[i], bin_width) - val2 = Utils.float_round_log10(val1 + bin_width, bin_width) - a1 = val1.to_s.split('.', 2).map(&:length) - a2 = val2.to_s.split('.', 2).map(&:length) - labels[i] = "\e[90m#{l_str}\e[0m" + - (" " * (pad_left - a1[0])) + - val1.to_s + - (" " * (pad_right - a1[1])) + - "\e[90m, \e[0m" + - (" " * (pad_left - a2[0])) + - val2.to_s + - (" " * (pad_right - a2[1])) + - "\e[90m#{r_str}\e[0m" - end - xscale = kw.delete(:xscale) - xlabel = kw.delete(:xlabel) || - ValueTransformer.transform_name(xscale, "Frequency") - barplot(labels, counts, - symbol: symbol, - xscale: xscale, - xlabel: xlabel, - **kw) - end -end diff --git a/lib/unicode_plot/io_context.rb b/lib/unicode_plot/io_context.rb deleted file mode 100644 index 4070739..0000000 --- a/lib/unicode_plot/io_context.rb +++ /dev/null @@ -1,32 +0,0 @@ -require "forwardable" - -module UnicodePlot - class IOContext - extend Forwardable - - def initialize(io, color: :auto) - @io = io - @color = check_color(color) - end - - def_delegators :@io, :print, :puts - - def color? - case @color - when :auto - @io.respond_to?(:tty?) ? @io.tty? : false - else - @color - end - end - - private def check_color(color) - case color - when true, false, :auto - color - else - raise ArgumentError, "color must be either true, false, :auto" - end - end - end -end diff --git a/lib/unicode_plot/lineplot.rb b/lib/unicode_plot/lineplot.rb deleted file mode 100644 index acc687b..0000000 --- a/lib/unicode_plot/lineplot.rb +++ /dev/null @@ -1,125 +0,0 @@ -require 'date' - -module UnicodePlot - class Lineplot < GridPlot - end - - # @overload lineplot([x], y, name: "", canvas: :braille, title: "", xlabel: "", ylabel: "", labels: true, border: :solid, margin: Plot::DEFAULT_MARGIN, padding: Plot::DEFAULT_PADDING, color: :auto, width: Plot::DEFAULT_WIDTH, height: GridPlot::DEFAULT_HEIGHT, xlim: [0, 0], ylim: [0, 0], canvas: :braille, grid: true) - # - # Draws a path through the given points on a new canvas. - # - # The first (optional) array `x` should contain the horizontal positions for all the points along the path. - # The second array `y` should then contain the corresponding vertical positions respectively. - # This means that the two vectors must be of the same length and ordering. - # - # @param x [Array] Optional. The horizontal position for each point. If omitted, the axes of `y` will be used as `x`. - # @param y [Array] The vertical position for each point. - # @param name [String] Annotation of the current drawing to be displayed on the right. - # @param title - # @param xlabel - # @param ylabel - # @param labels - # @param border - # @param margin - # @param padding - # @param color - # @param width - # @param height - # @param xlim - # @param ylim - # @param canvas [Symbol] The type of canvas that should be used for drawing. - # @param grid [true,false] If `true`, draws grid-lines at the origin. - # @return [Lineplot] A plot object. - module_function def lineplot(*args, - canvas: :braille, - color: :auto, - name: "", - **kw) - case args.length - when 1 - # y only - y = Array(args[0]) - x = Array(1 .. y.length) - when 2 - # x and y - x = Array(args[0]) - y = Array(args[1]) - else - raise ArgumentError, "wrong number of arguments" - end - - case x[0] - when Time, Date - if x[0].is_a? Time - d = x.map(&:to_f) - else - origin = Date.new(1, 1, 1) - d = x.map {|xi| xi - origin } - end - plot = lineplot(d, y, canvas: canvas, color: color, name: name, **kw) - xmin, xmax = x.minmax - plot.annotate!(:bl, xmin.to_s, color: :light_black) - plot.annotate!(:br, xmax.to_s, color: :light_black) - plot - else - plot = Lineplot.new(x, y, canvas, **kw) - lineplot!(plot, x, y, color: color, name: name) - end - end - - # @overload lineplot!(plot, [x], y, name: "", color: :auto) - # - # Draws a path through the given points on the given canvas. - # - # @param plot [Lineplot] The plot object. - # @param x [Array] Optional. The horizontal position for each point. If omitted, the axes of `y` will be used as `x`. - # @param y [Array] The vertical position for each point. - # @param name [String] Annotation of the current drawing to be displayed on the right. - # @param color - # @return [Lineplot] The plot object same as the `plot` parameter. - module_function def lineplot!(plot, - *args, - color: :auto, - name: "") - case args.length - when 1 - # y only - y = Array(args[0]) - x = Array(1 .. y.length) - when 2 - # x and y - x = Array(args[0]) - y = Array(args[1]) - - if x.length == 1 && y.length == 1 - # intercept and slope - intercept = x[0] - slope = y[0] - xmin = plot.origin_x - xmax = plot.origin_x + plot.plot_width - ymin = plot.origin_y - ymax = plot.origin_y + plot.plot_height - x = [xmin, xmax] - y = [intercept + xmin*slope, intercept + xmax*slope] - end - else - raise ArgumentError, "wrong number of arguments" - end - - case x[0] - when Time, Date - if x[0].is_a? Time - d = x.map(&:to_f) - else - origin = Date.new(1, 1, 1) - d = x.map {|xi| xi - origin } - end - lineplot!(plot, d, y, color: color, name: name) - else - color = color == :auto ? plot.next_color : color - plot.annotate!(:r, name.to_s, color: color) unless name.nil? || name == "" - plot.lines!(x, y, color) - end - plot - end -end diff --git a/lib/unicode_plot/plot.rb b/lib/unicode_plot/plot.rb deleted file mode 100644 index 728ce20..0000000 --- a/lib/unicode_plot/plot.rb +++ /dev/null @@ -1,151 +0,0 @@ -module UnicodePlot - class Plot - include StyledPrinter - - DEFAULT_WIDTH = 40 - DEFAULT_BORDER = :solid - DEFAULT_MARGIN = 3 - DEFAULT_PADDING = 1 - - def initialize(title: nil, - xlabel: nil, - ylabel: nil, - border: DEFAULT_BORDER, - margin: DEFAULT_MARGIN, - padding: DEFAULT_PADDING, - labels: true) - @title = title - @xlabel = xlabel - @ylabel = ylabel - @border = check_border(border) - @margin = check_margin(margin) - @padding = padding - @labels_left = {} - @colors_left = {} - @labels_right = {} - @colors_right = {} - @decorations = {} - @colors_deco = {} - @show_labels = labels - @auto_color = 0 - end - - attr_reader :title - attr_reader :xlabel - attr_reader :ylabel - attr_reader :border - attr_reader :margin - attr_reader :padding - attr_reader :labels_left - attr_reader :colors_left - attr_reader :labels_right - attr_reader :colors_right - attr_reader :decorations - attr_reader :colors_deco - - def title_given? - title && title != "" - end - - def xlabel_given? - xlabel && xlabel != "" - end - - def ylabel_given? - ylabel && ylabel != "" - end - - def ylabel_length - ylabel&.length || 0 - end - - def show_labels? - @show_labels - end - - def annotate!(loc, value, color: :normal) - case loc - when :l - (0 ... n_rows).each do |row| - if @labels_left.fetch(row, "") == "" - @labels_left[row] = value - @colors_left[row] = color - break - end - end - when :r - (0 ... n_rows).each do |row| - if @labels_right.fetch(row, "") == "" - @labels_right[row] = value - @colors_right[row] = color - break - end - end - when :t, :b, :tl, :tr, :bl, :br - @decorations[loc] = value - @colors_deco[loc] = color - else - raise ArgumentError, - "unknown location to annotate (#{loc.inspect} for :t, :b, :l, :r, :tl, :tr, :bl, or :br)" - end - end - - def annotate_row!(loc, row_index, value, color: :normal) - case loc - when :l - @labels_left[row_index] = value - @colors_left[row_index] = color - when :r - @labels_right[row_index] = value - @colors_right[row_index] = color - else - raise ArgumentError, "unknown location `#{loc}`, try :l or :r instead" - end - end - - def render(out=$stdout, newline: true, color: :auto) - Renderer.render(IOContext.new(out, color: color), self, newline) - end - - COLOR_CYCLE = [ - :green, - :blue, - :red, - :magenta, - :yellow, - :cyan - ].freeze - - def next_color - COLOR_CYCLE[@auto_color] - ensure - @auto_color = (@auto_color + 1) % COLOR_CYCLE.length - end - - def to_s - StringIO.open do |sio| - render(sio, newline: false) - sio.close - sio.string - end - end - - private def check_margin(margin) - if margin < 0 - raise ArgumentError, "margin must be >= 0" - end - margin - end - - private def check_row_index(row_index) - unless 0 <= row_index && row_index < n_rows - raise ArgumentError, "row_index out of bounds" - end - end - - private def check_border(border) - return border if BORDER_MAP.key?(border) - raise ArgumentError, "unknown border type: #{border}" - end - end -end diff --git a/lib/unicode_plot/renderer.rb b/lib/unicode_plot/renderer.rb deleted file mode 100644 index 448223e..0000000 --- a/lib/unicode_plot/renderer.rb +++ /dev/null @@ -1,263 +0,0 @@ -module UnicodePlot - module BorderMaps - BORDER_SOLID = { - tl: "┌", - tr: "┐", - bl: "└", - br: "┘", - t: "─", - l: "│", - b: "─", - r: "│" - }.freeze - - BORDER_ASCII = { - tl: "+", - tr: "+", - bl: "+", - br: "+", - t: "-", - l: "|", - b: "-", - r: "|" - }.freeze - - BORDER_CORNERS = { - tl: "┌", - tr: "┐", - bl: "└", - br: "┘", - t: " ", - l: " ", - b: " ", - r: " ", - }.freeze - - BORDER_BARPLOT = { - tl: "┌", - tr: "┐", - bl: "└", - br: "┘", - t: " ", - l: "┤", - b: " ", - r: " ", - }.freeze - end - - BORDER_MAP = { - solid: BorderMaps::BORDER_SOLID, - ascii: BorderMaps::BORDER_ASCII, - corners: BorderMaps::BORDER_CORNERS, - barplot: BorderMaps::BORDER_BARPLOT, - }.freeze - - def self.border_types - BORDER_MAP.keys - end - - module BorderPrinter - include StyledPrinter - - def print_border_top(out, padding, length, border=:solid, color: :light_black) - return if border == :none - b = BORDER_MAP[border] - print_styled(out, padding, b[:tl], b[:t] * length, b[:tr], color: color) - end - - def print_border_bottom(out, padding, length, border=:solid, color: :light_black) - return if border == :none - b = BORDER_MAP[border] - print_styled(out, padding, b[:bl], b[:b] * length, b[:br], color: color) - end - end - - class Renderer - include BorderPrinter - - def self.render(out, plot, newline) - new(plot).render(out, newline) - end - - def initialize(plot) - @plot = plot - @out = nil - end - - attr_reader :plot - attr_reader :out - - def render(out, newline) - @out = out - init_render - - render_top - render_rows - render_bottom - out.puts if newline - end - - private - - def render_top - # plot the title and the top border - print_title(@border_padding, plot.title, p_width: @border_length, color: :bold) - puts if plot.title_given? - - if plot.show_labels? - topleft_str = plot.decorations.fetch(:tl, "") - topleft_col = plot.colors_deco.fetch(:tl, :light_black) - topmid_str = plot.decorations.fetch(:t, "") - topmid_col = plot.colors_deco.fetch(:t, :light_black) - topright_str = plot.decorations.fetch(:tr, "") - topright_col = plot.colors_deco.fetch(:tr, :light_black) - - if topleft_str != "" || topright_str != "" || topmid_str != "" - topleft_len = topleft_str.length - topmid_len = topmid_str.length - topright_len = topright_str.length - print_styled(out, @border_padding, topleft_str, color: topleft_col) - cnt = (@border_length / 2.0 - topmid_len / 2.0 - topleft_len).round - pad = cnt > 0 ? " " * cnt : "" - print_styled(out, pad, topmid_str, color: topmid_col) - cnt = @border_length - topright_len - topleft_len - topmid_len + 2 - cnt - pad = cnt > 0 ? " " * cnt : "" - print_styled(out, pad, topright_str, "\n", color: topright_col) - end - end - - print_border_top(out, @border_padding, @border_length, plot.border) - print(" " * @max_len_r, @plot_padding, "\n") - end - - # render all rows - def render_rows - (0 ... plot.n_rows).each {|row| render_row(row) } - end - - def render_row(row) - # Current labels to left and right of the row and their length - left_str = plot.labels_left.fetch(row, "") - left_col = plot.colors_left.fetch(row, :light_black) - right_str = plot.labels_right.fetch(row, "") - right_col = plot.colors_right.fetch(row, :light_black) - left_len = nocolor_string(left_str).length - right_len = nocolor_string(right_str).length - - unless out.color? - left_str = nocolor_string(left_str) - right_str = nocolor_string(right_str) - end - - # print left annotations - print(" " * plot.margin) - if plot.show_labels? - if row == @y_lab_row - # print ylabel - print_styled(out, plot.ylabel, color: :normal) - print(" " * (@max_len_l - plot.ylabel_length - left_len)) - else - # print padding to fill ylabel length - print(" " * (@max_len_l - left_len)) - end - # print the left annotation - print_styled(out, left_str, color: left_col) - end - - # print left border - print_styled(out, @plot_padding, @b[:l], color: :light_black) - - # print canvas row - plot.print_row(out, row) - - #print right label and padding - print_styled(out, @b[:r], color: :light_black) - if plot.show_labels? - print(@plot_padding) - print_styled(out, right_str, color: right_col) - print(" " * (@max_len_r - right_len)) - end - puts - end - - def render_bottom - # draw bottom border and bottom labels - print_border_bottom(out, @border_padding, @border_length, plot.border) - print(" " * @max_len_r, @plot_padding) - if plot.show_labels? - botleft_str = plot.decorations.fetch(:bl, "") - botleft_col = plot.colors_deco.fetch(:bl, :light_black) - botmid_str = plot.decorations.fetch(:b, "") - botmid_col = plot.colors_deco.fetch(:b, :light_black) - botright_str = plot.decorations.fetch(:br, "") - botright_col = plot.colors_deco.fetch(:br, :light_black) - - if botleft_str != "" || botright_str != "" || botmid_str != "" - puts - botleft_len = botleft_str.length - botmid_len = botmid_str.length - botright_len = botright_str.length - print_styled(out, @border_padding, botleft_str, color: botleft_col) - cnt = (@border_length / 2.0 - botmid_len / 2.0 - botleft_len).round - pad = cnt > 0 ? " " * cnt : "" - print_styled(out, pad, botmid_str, color: botmid_col) - cnt = @border_length - botright_len - botleft_len - botmid_len + 2 - cnt - pad = cnt > 0 ? " " * cnt : "" - print_styled(out, pad, botright_str, color: botright_col) - end - - # abuse the print_title function to print the xlabel. maybe refactor this - puts if plot.xlabel_given? - print_title(@border_padding, plot.xlabel, p_width: @border_length) - end - end - - def init_render - @b = BORDER_MAP[plot.border] - @border_length = plot.n_columns - - # get length of largest strings to the left and right - @max_len_l = plot.show_labels? && !plot.labels_left.empty? ? - plot.labels_left.each_value.map {|l| nocolor_string(l).length }.max : - 0 - @max_len_r = plot.show_labels? && !plot.labels_right.empty? ? - plot.labels_right.each_value.map {|l| nocolor_string(l).length }.max : - 0 - if plot.show_labels? && plot.ylabel_given? - @max_len_l += plot.ylabel_length + 1 - end - - # offset where the plot (incl border) begins - @plot_offset = @max_len_l + plot.margin + plot.padding - - # padding-string from left to border - @plot_padding = " " * plot.padding - - # padding-string between labels and border - @border_padding = " " * @plot_offset - - # compute position of ylabel - @y_lab_row = (plot.n_rows / 2.0).round - 1 - end - - def print_title(padding, title, p_width: 0, color: :normal) - return unless title && title != "" - offset = (p_width / 2.0 - title.length / 2.0).round - offset = [offset, 0].max - tpad = " " * offset - print_styled(out, padding, tpad, title, color: color) - end - - def print(*args) - out.print(*args) - end - - def puts(*args) - out.puts(*args) - end - - def nocolor_string(str) - str.to_s.gsub(/\e\[[0-9]+m/, "") - end - end -end diff --git a/lib/unicode_plot/scatterplot.rb b/lib/unicode_plot/scatterplot.rb deleted file mode 100644 index d558c52..0000000 --- a/lib/unicode_plot/scatterplot.rb +++ /dev/null @@ -1,49 +0,0 @@ -module UnicodePlot - class Scatterplot < GridPlot - end - - module_function def scatterplot(*args, - canvas: :braille, - color: :auto, - name: "", - **kw) - case args.length - when 1 - # y only - y = Array(args[0]) - x = Array(1 .. y.length) - when 2 - # x and y - x = Array(args[0]) - y = Array(args[1]) - else - raise ArgumentError, "wrong number of arguments" - end - - plot = Scatterplot.new(x, y, canvas, **kw) - scatterplot!(plot, x, y, color: color, name: name) - end - - module_function def scatterplot!(plot, - *args, - color: :auto, - name: "") - case args.length - when 1 - # y only - y = Array(args[0]) - x = Array(1 .. y.length) - when 2 - # x and y - x = Array(args[0]) - y = Array(args[1]) - else - raise ArgumentError, "wrong number of arguments" - end - - color = color == :auto ? plot.next_color : color - plot.annotate!(:r, name.to_s, color: color) unless name.nil? || name == "" - plot.points!(x, y, color) - plot - end -end diff --git a/lib/unicode_plot/stairs.rb b/lib/unicode_plot/stairs.rb deleted file mode 100644 index 8161167..0000000 --- a/lib/unicode_plot/stairs.rb +++ /dev/null @@ -1,88 +0,0 @@ -# coding: utf-8 -module UnicodePlot - # @overload stairs(x, y, style: :post, name: "", title: "", xlabel: "", ylabel: "", labels: true, border: :solid, margin: 3, padding: 1, color: :auto, width: 40, height: 15, xlim: [0, 0], ylim: [0, 0], canvas: :braille, grid: true) - # - # Draws a staircase plot on a new canvas. - # - # The first vector `x` should contain the horizontal - # positions for all the points. The second vector `y` should then - # contain the corresponding vertical positions respectively. This - # means that the two vectors must be of the same length and - # ordering. - # - # @param x [Array] The horizontal position for each point. - # @param y [Array] The vertical position for each point. - # @param style [Symbol] Specifies where the transition of the stair takes place. Can be either `:pre` or `:post`. - # @param name [String] Annotation of the current drawing to be displayed on the right. - # @param height [Integer] Number of character rows that should be used for plotting. - # @param xlim [Array] Plotting range for the x axis. `[0, 0]` stands for automatic. - # @param ylim [Array] Plotting range for the y axis. `[0, 0]` stands for automatic. - # @param canvas [Symbol] The type of canvas that should be used for drawing. - # @param grid [Boolean] If `true`, draws grid-lines at the origin. - # - # @return [Plot] A plot object. - # - # @example Example usage of stairs on IRB: - # - # >> UnicodePlot.stairs([1, 2, 4, 7, 8], [1, 3, 4, 2, 7], style: :post, title: "My Staircase Plot").render - # My Staircase Plot - # ┌────────────────────────────────────────┐ - # 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡄⠀⠀⠀⠀⢸│ - # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ - # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ - # │⠀⠀⠀⠀⠀⢸⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ - # │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ - # │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠧⠤⠤⠤⠤⠼│ - # │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - # 1 │⣀⣀⣀⣀⣀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - # └────────────────────────────────────────┘ - # 1 8 - # => nil - # - # @see Plot - # @see scatterplot - # @see lineplot - module_function def stairs(xvec, yvec, style: :post, **kw) - x_vex, y_vex = compute_stair_lines(xvec, yvec, style: style) - lineplot(x_vex, y_vex, **kw) - end - - # Similar to stairs, but takes an existing plot object as a first argument. - module_function def stairs!(plot, xvec, yvec, style: :post, **kw) - x_vex, y_vex = compute_stair_lines(xvec, yvec, style: style) - lineplot!(plot, x_vex, y_vex, **kw) - end - - module_function def compute_stair_lines(x, y, style: :post) - x_vex = Array.new(x.length * 2 - 1, 0) - y_vex = Array.new(x.length * 2 - 1, 0) - x_vex[0] = x[0] - y_vex[0] = y[0] - o = 0 - if style == :post - (1 ... x.length).each do |i| - x_vex[i + o] = x[i] - x_vex[i + o + 1] = x[i] - y_vex[i + o] = y[i-1] - y_vex[i + o + 1] = y[i] - o += 1 - end - elsif style == :pre - (1 ... x.length).each do |i| - x_vex[i + o] = x[i-1] - x_vex[i + o + 1] = x[i] - y_vex[i + o] = y[i] - y_vex[i + o + 1] = y[i] - o += 1 - end - end - return [x_vex, y_vex] - end -end diff --git a/lib/unicode_plot/stemplot.rb b/lib/unicode_plot/stemplot.rb deleted file mode 100644 index 9a37779..0000000 --- a/lib/unicode_plot/stemplot.rb +++ /dev/null @@ -1,344 +0,0 @@ -# coding: utf-8 - -module UnicodePlot - - # ## Description - # - # Draw a stem-leaf plot of the given vector +vec+. - # - # ``` - # stemplot(vec, **kwargs) - # ``` - # - # Draw a back-to-back stem-leaf plot of the given vectors +vec1+ and +vec2+. - # - # ``` - # stemplot(vec1, vec2, **kwargs) - # ``` - # - # The vectors can be any object that converts to an Array, e.g. an Array, Range, etc. - # If all elements of the vector are Numeric, the stem-leaf plot is classified as a - # {NumericStemplot}, otherwise it is classified as a {StringStemplot}. Back-to-back - # stem-leaf plots must be the same type, i.e. String and Numeric stem-leaf plots cannot - # be mixed in a back-to-back plot. - # - # ## Usage - # - # stemplot(vec, [vec2], scale:, divider:, padchar:, trim: ) - # - # ## Arguments - # - # - +vec+: Vector for which the stem leaf plot should be computed. - # - +vec2+: Optional secondary vector, will be used to create a back-to-back stem-leaf plot. - # - +scale+: Set scale of plot. Default = 10. Scale is changed via orders of magnitude. Common values are 0.1, 1, and 10. For String stems, the default value of 10 is a one character stem, 100 is a two character stem. - # - +divider+: Character for break between stem and leaf. Default = "|" - # - +padchar+: Character(s) to separate stems, leaves and dividers. Default = " " - # - +trim+: Trims the stem labels when there are no leaves. This can be useful if your data is sparse. Default = +false+ - # - +string_padchar+: Character used to replace missing position for input strings shorter than the stem-size. Default = "_" - # - # ## Result - # A plot of object type is sent to $stdout - # - # @example Examples using Numbers - # # Generate some numbers - # fifty_floats = 50.times.map { rand(-1000..1000)/350.0 } - # eighty_ints = 80.times.map { rand(1..100) } - # another_eighty_ints = 80.times.map { rand(1..100) } - # three_hundred_ints = 300.times.map { rand(-100..100) } - # - # # Single sided stem-plot - # UnicodePlot.stemplot(eighty_ints) - # - # # Single sided stem-plot with positive and negative values - # UnicodePlot.stemplot(three_hundred_ints) - # - # # Single sided stem-plot using floating point values, scaled - # UnicodePlot.stemplot(fifty_floats, scale: 1) - # - # # Single sided stem-plot using floating point values, scaled with new divider - # UnicodePlot.stemplot(fifty_floats, scale: 1, divider: "😄") - # - # # Back to back stem-plot - # UnicodePlot.stemplot(eighty_ints, another_eighty_ints) - # - # @example Examples using Strings - # # Generate some strings - # words_1 = %w[apple junk ant age bee bar baz dog egg a] - # words_2 = %w[ape flan can cat juice elf gnome child fruit] - # - # # Single sided stem-plot - # UnicodePlot.stemplot(words_1) - # - # # Back to back stem-plot - # UnicodePlot.stemplot(words_1, words_2) - # - # # Scaled stem plot using scale=100 (two letters for the stem) and trimmed stems - # UnicodePlot.stemplot(words_1, scale: 100, trim: true) - # - # # Above, but changing the string_padchar - # UnicodePlot.stemplot(words_1, scale: 100, trim: true, string_padchar: '?') - - class Stemplot - - # Use {factory} method -- should not be directly called. - def initialize(*_args, **_kw) - @stemleafs = {} - end - - # Factory method to create a Stemplot, creates either a NumericStemplot - # or StringStemplot depending on input. - # - # @param vector [Array] An array of elements to stem-leaf plot - # @return [NumericStemplot] If all elements are Numeric - # @return [StringStemplot] If any elements are not Numeric - def self.factory(vector, **kw) - vec = Array(vector) - if vec.all? { |item| item.is_a?(Numeric) } - NumericStemplot.new(vec, **kw) - else - StringStemplot.new(vec, **kw) - end - end - - # Insert a stem and leaf - def insert(stem, leaf) - @stemleafs[stem] ||= [] - @stemleafs[stem] << leaf - end - - # Returns an unsorted list of stems - # @return [Array] Unsorted list of stems - def raw_stems - @stemleafs.keys - end - - # Returns a list of leaves for a given stem - # @param stem [Object] The stem - # @return [Array] Unsorted list of leaves - def leaves(stem) - @stemleafs[stem] || [] - end - - # Determines largest length of any stem - # @return [Integer] Length value - def max_stem_length - @stemleafs.values.map(&:length).max - end - - # Returns a sorted list of stems - # @param all [Boolean] Return all stems if true, otherwise only return stems if a leaf exists for a stem - # @return [Array] Sorted list of stems - def stems(all: true) - self.class.sorted_stem_list(raw_stems, all: all) - end - - end - - class NumericStemplot < Stemplot - def initialize(vector, scale: 10, **kw) - super - Array(vector).each do |value| - fvalue = value.to_f.fdiv(scale/10.0) - stemnum = (fvalue/10).to_i - leafnum = (fvalue - (stemnum*10)).to_i - stemsign = value.negative? ? "-" : '' - stem = stemsign + stemnum.abs.to_s - leaf = leafnum.abs.to_s - self.insert(stem, leaf) - end - end - - # Print key to STDOUT - # @param scale [Integer] Scale, should be a power of 10 - # @param divider [String] Divider character between stem and leaf - def print_key(scale, divider) - # First print the key - puts "Key: 1#{divider}0 = #{scale}" - # Description of where the decimal is - trunclog = Math.log10(scale).truncate - ndigits = trunclog.abs - right_or_left = (trunclog < 0) ? "left" : "right" - puts "The decimal is #{ndigits} digit(s) to the #{right_or_left} of #{divider}" - end - - # Used when we have stems from a back-to-back stemplot and a combined list of stems is given - # @param stems [Array] Concatenated list of stems from two plots - # @param all [Boolean] Return all stems if true, otherwise only return stems if a leaf exists for a stem - # @return [Array] Sorted list of stems - def self.sorted_stem_list(stems, all: true) - negkeys, poskeys = stems.partition { |str| str[0] == '-'} - if all - negmin, negmax = negkeys.map(&:to_i).map(&:abs).minmax - posmin, posmax = poskeys.map(&:to_i).minmax - negrange = negmin ? (negmin..negmax).to_a.reverse.map { |s| "-"+s.to_s } : [] - posrange = posmin ? (posmin..posmax).to_a.map(&:to_s) : [] - return negrange + posrange - else - negkeys.sort! { |a,b| a.to_i <=> b.to_i } - poskeys.sort! { |a,b| a.to_i <=> b.to_i } - return negkeys + poskeys - end - end - end - - class StringStemplot < Stemplot - - def initialize(vector, scale: 10, string_padchar: '_', **_kw) - super - stem_places = Math.log10(scale).floor - raise ArgumentError, "Cannot take fewer than 1 place from stem. Scale parameter should be greater than or equal to 10." if stem_places < 1 - vector.each do |value| - # Strings may be shorter than the number of places we desire, - # so we will pad them with a string-pad-character. - padded_value = value.ljust(stem_places+1, string_padchar) - stem = padded_value[0...stem_places] - leaf = padded_value[stem_places] - self.insert(stem, leaf) - end - end - - # Function prototype to provide same interface as {NumericStemplot}. - # This function does not do anything. - # @return [false] - def print_key(_scale, _divider) - # intentionally empty - return false - end - - # Used when we have stems from a back-to-back stemplot and a combined list of stems is given - # @param stems [Array] Concatenated list of stems from two plots - # @param all [Boolean] Return all stems if true, otherwise only return stems if a leaf exists for a stem - # @return [Array] Sorted list of stems - def self.sorted_stem_list(stems, all: true) - if all - rmin, rmax = stems.minmax - return (rmin .. rmax).to_a - else - stems.sort - end - end - - end - - # Print a Single-Vector stemplot to STDOUT. - # - # - Stem data is printed on the left. - # - Leaf data is printed on the right. - # - Key is printed at the bottom. - # @param plt [Stemplot] Stemplot object - # @param scale [Integer] Scale, should be a power of 10 - # @param divider [String] Divider character between stem and leaf - # @param padchar [String] Padding character - # @param trim [Boolean] Trim missing stems from the plot - def stemplot1!(plt, - scale: 10, - divider: "|", - padchar: " ", - trim: false, - **_kw - ) - - stem_labels = plt.stems(all: !trim) - label_len = stem_labels.map(&:length).max - column_len = label_len + 1 - - stem_labels.each do |stem| - leaves = plt.leaves(stem).sort - stemlbl = stem.rjust(label_len, padchar).ljust(column_len, padchar) - puts stemlbl + divider + padchar + leaves.join - end - plt.print_key(scale, divider) - end - - # Print a Back-to-Back Stemplot to STDOUT - # - # - +plt1+ Leaf data is printed on the left. - # - Common stem data is printed in the center. - # - +plt2+ Leaf data is printed on the right. - # - Key is printed at the bottom. - # @param plt1 [Stemplot] Stemplot object for the left side - # @param plt2 [Stemplot] Stemplot object for the right side - # @param scale [Integer] Scale, should be a power of 10 - # @param divider [String] Divider character between stem and leaf - # @param padchar [String] Padding character - # @param trim [Boolean] Trim missing stems from the plot - def stemplot2!(plt1, plt2, - scale: 10, - divider: "|", - padchar: " ", - trim: false, - **_kw - ) - stem_labels = plt1.class.sorted_stem_list( (plt1.raw_stems + plt2.raw_stems).uniq, all: !trim ) - label_len = stem_labels.map(&:length).max - column_len = label_len + 1 - - leftleaf_len = plt1.max_stem_length - - stem_labels.each do |stem| - left_leaves = plt1.leaves(stem).sort.join('') - right_leaves = plt2.leaves(stem).sort.join('') - left_leaves_just = left_leaves.reverse.rjust(leftleaf_len, padchar) - stem = stem.rjust(column_len, padchar).ljust(column_len+1, padchar) - puts left_leaves_just + padchar + divider + stem + divider + padchar + right_leaves - end - - plt1.print_key(scale, divider) - - end - - # Generates one or more {Stemplot} objects from the input data - # and prints a Single or Double stemplot using {stemplot1!} or {stemplot2!} - # @see Stemplot - # @example Single sided stemplot - # >> UnicodePlot.stemplot(eighty_ints) - # 0 | 257 - # 1 | 00335679 - # 2 | 034455899 - # 3 | 145588 - # 4 | 0022223 - # 5 | 0223399 - # 6 | 012345568889 - # 7 | 01133334466777888 - # 8 | 013689 - # 9 | 22667 - # Key: 1|0 = 10 - # The decimal is 1 digit(s) to the right of | - # - # @example Back-to-back stemplot - # >> UnicodePlot.stemplot(eighty_ints, another_eighty_ints) - # 752 | 0 | 1244457899 - # 97653300 | 1 | 4799 - # 998554430 | 2 | 015668 - # 885541 | 3 | 0144557888899 - # 3222200 | 4 | 00268 - # 9933220 | 5 | 0234778 - # 988865543210 | 6 | 122222357889 - # 88877766443333110 | 7 | 134556689 - # 986310 | 8 | 24589 - # 76622 | 9 | 022234468 - # Key: 1|0 = 10 - # The decimal is 1 digit(s) to the right of | - # - def stemplot(*args, scale: 10, **kw) - case args.length - when 1 - # Stemplot object - plt = Stemplot.factory(args[0], scale: scale, **kw) - # Dispatch to plot routine - stemplot1!(plt, scale: scale, **kw) - when 2 - # Stemplot object - plt1 = Stemplot.factory(args[0], scale: scale) - plt2 = Stemplot.factory(args[1], scale: scale) - raise ArgumentError, "Plot types must be the same for back-to-back stemplot " + - "#{plt1.class} != #{plt2.class}" unless plt1.class == plt2.class - # Dispatch to plot routine - stemplot2!(plt1, plt2, scale: scale, **kw) - else - raise ArgumentError, "Expecting one or two arguments" - end - end - - module_function :stemplot, :stemplot1!, :stemplot2! -end diff --git a/lib/unicode_plot/styled_printer.rb b/lib/unicode_plot/styled_printer.rb deleted file mode 100644 index 1a6c660..0000000 --- a/lib/unicode_plot/styled_printer.rb +++ /dev/null @@ -1,87 +0,0 @@ -module UnicodePlot - module StyledPrinter - TEXT_COLORS = { - black: "\033[30m", - red: "\033[31m", - green: "\033[32m", - yellow: "\033[33m", - blue: "\033[34m", - magenta: "\033[35m", - cyan: "\033[36m", - white: "\033[37m", - gray: "\033[90m", - light_black: "\033[90m", - light_red: "\033[91m", - light_green: "\033[92m", - light_yellow: "\033[93m", - light_blue: "\033[94m", - light_magenta: "\033[95m", - light_cyan: "\033[96m", - normal: "\033[0m", - default: "\033[39m", - bold: "\033[1m", - underline: "\033[4m", - blink: "\033[5m", - reverse: "\033[7m", - hidden: "\033[8m", - nothing: "", - } - - 0.upto(255) do |i| - TEXT_COLORS[i] = "\033[38;5;#{i}m" - end - - TEXT_COLORS.freeze - - DISABLE_TEXT_STYLE = { - bold: "\033[22m", - underline: "\033[24m", - blink: "\033[25m", - reverse: "\033[27m", - hidden: "\033[28m", - normal: "", - default: "", - nothing: "", - }.freeze - - COLOR_ENCODE = { - normal: 0b000, - blue: 0b001, - red: 0b010, - magenta: 0b011, - green: 0b100, - cyan: 0b101, - yellow: 0b110, - white: 0b111 - }.freeze - - COLOR_DECODE = COLOR_ENCODE.map {|k, v| [v, k] }.to_h.freeze - - def print_styled(out, *args, bold: false, color: :normal) - return out.print(*args) unless out.color? - - str = StringIO.open {|sio| sio.print(*args); sio.close; sio.string } - color = :nothing if bold && color == :bold - enable_ansi = TEXT_COLORS.fetch(color, TEXT_COLORS[:default]) + - (bold ? TEXT_COLORS[:bold] : "") - disable_ansi = (bold ? DISABLE_TEXT_STYLE[:bold] : "") + - DISABLE_TEXT_STYLE.fetch(color, TEXT_COLORS[:default]) - first = true - StringIO.open do |sio| - str.each_line do |line| - sio.puts unless first - first = false - continue if line.empty? - sio.print(enable_ansi, line, disable_ansi) - end - sio.close - out.print(sio.string) - end - end - - def print_color(out, color, *args) - color = COLOR_DECODE[color] - print_styled(out, *args, color: color) - end - end -end diff --git a/lib/unicode_plot/utils.rb b/lib/unicode_plot/utils.rb deleted file mode 100644 index bddb90f..0000000 --- a/lib/unicode_plot/utils.rb +++ /dev/null @@ -1,74 +0,0 @@ -module UnicodePlot - module Utils - module_function - - def extend_limits(values, limits) - mi, ma = limits.minmax.map(&:to_f) - if mi == 0 && ma == 0 - mi, ma = values.minmax.map(&:to_f) - end - diff = ma - mi - if diff == 0 - ma = mi + 1 - mi = mi - 1 - end - if limits == [0, 0] - plotting_range_narrow(mi, ma) - else - [mi, ma] - end - end - - def plotting_range_narrow(xmin, xmax) - diff = xmax - xmin - xmax = round_up_subtick(xmax, diff) - xmin = round_down_subtick(xmin, diff) - [xmin.to_f, xmax.to_f] - end - - def float_round_log10(x, m) - if x == 0 - 0.0 - elsif x > 0 - x.round(ceil_neg_log10(m) + 1).to_f - else - -(-x).round(ceil_neg_log10(m) + 1).to_f - end - end - - def round_up_subtick(x, m) - if x == 0 - 0.0 - elsif x > 0 - x.ceil(ceil_neg_log10(m) + 1) - else - -(-x).floor(ceil_neg_log10(m) + 1) - end - end - - def round_down_subtick(x, m) - if x == 0 - 0.0 - elsif x > 0 - x.floor(ceil_neg_log10(m) + 1) - else - -(-x).ceil(ceil_neg_log10(m) + 1) - end - end - - def ceil_neg_log10(x) - if roundable?(-Math.log10(x)) - (-Math.log10(x)).ceil - else - (-Math.log10(x)).floor - end - end - - INT64_MIN = -9223372036854775808 - INT64_MAX = 9223372036854775807 - - def roundable?(x) - x.to_i == x && INT64_MIN <= x && x < INT64_MAX - end - end -end diff --git a/lib/unicode_plot/value_transformer.rb b/lib/unicode_plot/value_transformer.rb deleted file mode 100644 index db59679..0000000 --- a/lib/unicode_plot/value_transformer.rb +++ /dev/null @@ -1,43 +0,0 @@ -module UnicodePlot - module ValueTransformer - PREDEFINED_TRANSFORM_FUNCTIONS = { - log: Math.method(:log), - ln: Math.method(:log), - log10: Math.method(:log10), - lg: Math.method(:log10), - log2: Math.method(:log2), - lb: Math.method(:log2), - }.freeze - - def transform_values(func, values) - return values unless func - - unless func.respond_to?(:call) - func = PREDEFINED_TRANSFORM_FUNCTIONS[func] - unless func.respond_to?(:call) - raise ArgumentError, "func must be callable" - end - end - - case values - when Numeric - func.(values) - else - values.map(&func) - end - end - - module_function def transform_name(func, basename="") - return basename unless func - case func - when String, Symbol - name = func - when ->(f) { f.respond_to?(:name) } - name = func.name - else - name = "custom" - end - "#{basename} [#{name}]" - end - end -end diff --git a/lib/unicode_plot/version.rb b/lib/unicode_plot/version.rb deleted file mode 100644 index 7f2e07e..0000000 --- a/lib/unicode_plot/version.rb +++ /dev/null @@ -1,9 +0,0 @@ -module UnicodePlot - VERSION = "0.0.5" - - module Version - numbers, TAG = VERSION.split("-", 2) - MAJOR, MINOR, MICRO = numbers.split(".", 3).map(&:to_i) - STRING = VERSION - end -end diff --git a/test/fixtures/barplot/default.txt b/test/fixtures/barplot/default.txt deleted file mode 100644 index 503e7d8..0000000 --- a/test/fixtures/barplot/default.txt +++ /dev/null @@ -1,4 +0,0 @@ - ┌ ┐ - bar ┤■■■■■■■■■■■■■■■■■■■■■■ 23   - foo ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 37   - └ ┘ \ No newline at end of file diff --git a/test/fixtures/barplot/default2.txt b/test/fixtures/barplot/default2.txt deleted file mode 100644 index f8fa4d8..0000000 --- a/test/fixtures/barplot/default2.txt +++ /dev/null @@ -1,5 +0,0 @@ - ┌ ┐ - bar ┤■■■■■■■■■ 23   - foo ┤■■■■■■■■■■■■■■■ 37   - zoom ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 90   - └ ┘ \ No newline at end of file diff --git a/test/fixtures/barplot/default_mixed.txt b/test/fixtures/barplot/default_mixed.txt deleted file mode 100644 index 32e088f..0000000 --- a/test/fixtures/barplot/default_mixed.txt +++ /dev/null @@ -1,5 +0,0 @@ - ┌ ┐ - bar ┤■■■■■■■■■■■■■■■■■■■■■ 23.0   - 2.1 ┤■■■■■■■■■ 10   - foo ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 37.0   - └ ┘ \ No newline at end of file diff --git a/test/fixtures/barplot/edgecase_onelarge.txt b/test/fixtures/barplot/edgecase_onelarge.txt deleted file mode 100644 index 7c6b70c..0000000 --- a/test/fixtures/barplot/edgecase_onelarge.txt +++ /dev/null @@ -1,6 +0,0 @@ - ┌ ┐ - a ┤ 1   - b ┤ 1   - c ┤ 1   - d ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 1000000   - └ ┘ \ No newline at end of file diff --git a/test/fixtures/barplot/edgecase_zeros.txt b/test/fixtures/barplot/edgecase_zeros.txt deleted file mode 100644 index b717ad5..0000000 --- a/test/fixtures/barplot/edgecase_zeros.txt +++ /dev/null @@ -1,7 +0,0 @@ - ┌ ┐ - 5 ┤ 0   - 4 ┤ 0   - 3 ┤ 0   - 2 ┤ 0   - 1 ┤ 0   - └ ┘ \ No newline at end of file diff --git a/test/fixtures/barplot/log10.txt b/test/fixtures/barplot/log10.txt deleted file mode 100644 index 5951cc5..0000000 --- a/test/fixtures/barplot/log10.txt +++ /dev/null @@ -1,9 +0,0 @@ - Logscale Plot - ┌ ┐ - a ┤ 0   - b ┤ 1   - c ┤■■■■■■■■■■■ 10   - d ┤■■■■■■■■■■■■■■■■■■■■■■■ 100   - e ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 1000   - └ ┘ - [log10] \ No newline at end of file diff --git a/test/fixtures/barplot/log10_label.txt b/test/fixtures/barplot/log10_label.txt deleted file mode 100644 index b0c02cd..0000000 --- a/test/fixtures/barplot/log10_label.txt +++ /dev/null @@ -1,9 +0,0 @@ - Logscale Plot - ┌ ┐ - a ┤ 0   - b ┤ 1   - c ┤■■■■■■■■■■■ 10   - d ┤■■■■■■■■■■■■■■■■■■■■■■■ 100   - e ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 1000   - └ ┘ - custom label \ No newline at end of file diff --git a/test/fixtures/barplot/nocolor.txt b/test/fixtures/barplot/nocolor.txt deleted file mode 100644 index 4976446..0000000 --- a/test/fixtures/barplot/nocolor.txt +++ /dev/null @@ -1,4 +0,0 @@ - ┌ ┐ - bar ┤■■■■■■■■■■■■■■■■■■■■■■ 23 - foo ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 37 - └ ┘ \ No newline at end of file diff --git a/test/fixtures/barplot/parameters1.txt b/test/fixtures/barplot/parameters1.txt deleted file mode 100644 index a0a25e6..0000000 --- a/test/fixtures/barplot/parameters1.txt +++ /dev/null @@ -1,8 +0,0 @@ - Relative sizes of cities - ┌ ┐ - Paris ┤■■■■■■ 2.244   - New York ┤■■■■■■■■■■■■■■■■■■■■■■■ 8.406   - Moskau ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 11.92   - Madrid ┤■■■■■■■■■ 3.165   - └ ┘ - population [in mil] \ No newline at end of file diff --git a/test/fixtures/barplot/parameters1_nolabels.txt b/test/fixtures/barplot/parameters1_nolabels.txt deleted file mode 100644 index 17dd9e8..0000000 --- a/test/fixtures/barplot/parameters1_nolabels.txt +++ /dev/null @@ -1,7 +0,0 @@ - Relative sizes of cities - ┌ ┐ -  ┤■■■■■■ 2.244   -  ┤■■■■■■■■■■■■■■■■■■■■■■■ 8.406   -  ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 11.92   -  ┤■■■■■■■■■ 3.165   - └ ┘ \ No newline at end of file diff --git a/test/fixtures/barplot/parameters2.txt b/test/fixtures/barplot/parameters2.txt deleted file mode 100644 index ecaefca..0000000 --- a/test/fixtures/barplot/parameters2.txt +++ /dev/null @@ -1,8 +0,0 @@ - Relative sizes of cities - ┌────────────────────────────────────────────────────────────┐ - Paris │========== 2.244 │ - New York │===================================== 8.406 │ - Moskau │===================================================== 11.92 │ - Madrid │============== 3.165 │ - └────────────────────────────────────────────────────────────┘ - population [in mil] \ No newline at end of file diff --git a/test/fixtures/barplot/ranges.txt b/test/fixtures/barplot/ranges.txt deleted file mode 100644 index f02242e..0000000 --- a/test/fixtures/barplot/ranges.txt +++ /dev/null @@ -1,7 +0,0 @@ - ┌ ┐ - 2 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■ 11   - 3 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 12   - 4 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 13   - 5 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 14   - 6 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 15   - └ ┘ \ No newline at end of file diff --git a/test/fixtures/barplot/ranges2.txt b/test/fixtures/barplot/ranges2.txt deleted file mode 100644 index ce7a1ba..0000000 --- a/test/fixtures/barplot/ranges2.txt +++ /dev/null @@ -1,9 +0,0 @@ - ┌ ┐ - 2 ┤■■■■■■■■■■■■■■■■■■■ 11   - 3 ┤■■■■■■■■■■■■■■■■■■■■■ 12   - 4 ┤■■■■■■■■■■■■■■■■■■■■■■ 13   - 5 ┤■■■■■■■■■■■■■■■■■■■■■■■■ 14   - 6 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■ 15   - 9 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 20   - 10 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 21   - └ ┘ \ No newline at end of file diff --git a/test/fixtures/boxplot/default.txt b/test/fixtures/boxplot/default.txt deleted file mode 100644 index 139d52d..0000000 --- a/test/fixtures/boxplot/default.txt +++ /dev/null @@ -1,6 +0,0 @@ - ┌ ┐ -  ╷ ┌─────────┬─────────┐ ╷  -  ├────────┤ │ ├─────────┤  -  ╵ └─────────┴─────────┘ ╵  - └ ┘ - 1 3 5 \ No newline at end of file diff --git a/test/fixtures/boxplot/default_name.txt b/test/fixtures/boxplot/default_name.txt deleted file mode 100644 index 97edd9a..0000000 --- a/test/fixtures/boxplot/default_name.txt +++ /dev/null @@ -1,6 +0,0 @@ - ┌ ┐ -  ╷ ┌─────────┬─────────┐ ╷  - series1 ├────────┤ │ ├─────────┤  -  ╵ └─────────┴─────────┘ ╵  - └ ┘ - 1 3 5 \ No newline at end of file diff --git a/test/fixtures/boxplot/default_parameters.txt b/test/fixtures/boxplot/default_parameters.txt deleted file mode 100644 index 0851cc7..0000000 --- a/test/fixtures/boxplot/default_parameters.txt +++ /dev/null @@ -1,8 +0,0 @@ - Test - ┌──────────────────────────────────────────────────┐ -  │ ╷ ┌────┬─────┐ ╷ │ - series1 │ ├─────┤ │ ├────┤ │ -  │ ╵ └────┴─────┘ ╵ │ - └──────────────────────────────────────────────────┘ - -1 3.5 8 - foo \ No newline at end of file diff --git a/test/fixtures/boxplot/default_parameters_nocolor.txt b/test/fixtures/boxplot/default_parameters_nocolor.txt deleted file mode 100644 index 4fed67b..0000000 --- a/test/fixtures/boxplot/default_parameters_nocolor.txt +++ /dev/null @@ -1,8 +0,0 @@ - Test - ┌──────────────────────────────────────────────────┐ - │ ╷ ┌────┬─────┐ ╷ │ - series1 │ ├─────┤ │ ├────┤ │ - │ ╵ └────┴─────┘ ╵ │ - └──────────────────────────────────────────────────┘ - -1 3.5 8 - foo \ No newline at end of file diff --git a/test/fixtures/boxplot/multi1.txt b/test/fixtures/boxplot/multi1.txt deleted file mode 100644 index 04ab74e..0000000 --- a/test/fixtures/boxplot/multi1.txt +++ /dev/null @@ -1,11 +0,0 @@ - Multi-series - ┌ ┐ -  ╷ ┌────┬────┐ ╷   - one ├───┤ │ ├────┤   -  ╵ └────┴────┘ ╵   -   ╷ ┌───────┬────────┐ ╷  - two  ├────────┤ │ ├────────┤  -   ╵ └───────┴────────┘ ╵  - └ ┘ - 1 5 9 - foo \ No newline at end of file diff --git a/test/fixtures/boxplot/multi2.txt b/test/fixtures/boxplot/multi2.txt deleted file mode 100644 index 105f9ab..0000000 --- a/test/fixtures/boxplot/multi2.txt +++ /dev/null @@ -1,14 +0,0 @@ - Multi-series - ┌ ┐ -   ╷ ┌──┬───┐ ╷   - one  ├──┤ │ ├──┤   -   ╵ └──┴───┘ ╵   -   ╷ ┌─────┬─────┐ ╷   - two  ├─────┤ │ ├────┤   -   ╵ └─────┴─────┘ ╵   -  ╷ ┌──┬───┐ ╷  - one more ├────────┤ │ ├──────────────────────┤  -  ╵ └──┴───┘ ╵  - └ ┘ - -1 5 11 - foo \ No newline at end of file diff --git a/test/fixtures/boxplot/multi3.txt b/test/fixtures/boxplot/multi3.txt deleted file mode 100644 index e5532dc..0000000 --- a/test/fixtures/boxplot/multi3.txt +++ /dev/null @@ -1,17 +0,0 @@ - Multi-series - ┌ ┐ -   ╷ ┌──┬─┐ ╷   - one  ├──┤ │ ├──┤   -   ╵ └──┴─┘ ╵   -   ╷ ┌───┬────┐ ╷   - two  ├────┤ │ ├────┤   -   ╵ └───┴────┘ ╵   -  ╷ ┌──┬─┐ ╷   - one more ├──────┤ │ ├──────────────────┤   -  ╵ └──┴─┘ ╵   -   ╷┌───┐ ╷  - last one  ├┤ ├──────────────────────────┤  -   ╵└───┘ ╵  - └ ┘ - -1 6.5 14 - foo \ No newline at end of file diff --git a/test/fixtures/boxplot/scale1.txt b/test/fixtures/boxplot/scale1.txt deleted file mode 100644 index 35d86bd..0000000 --- a/test/fixtures/boxplot/scale1.txt +++ /dev/null @@ -1,6 +0,0 @@ - ┌ ┐ -   ╷ ┌───────┬───────┐ ╷  -   ├───────┤ │ ├───────┤  -   ╵ └───────┴───────┘ ╵  - └ ┘ - 0 2.5 5 \ No newline at end of file diff --git a/test/fixtures/boxplot/scale2.txt b/test/fixtures/boxplot/scale2.txt deleted file mode 100644 index fe59ae9..0000000 --- a/test/fixtures/boxplot/scale2.txt +++ /dev/null @@ -1,6 +0,0 @@ - ┌ ┐ -   ╷ ┌──────┬──────┐ ╷   -   ├─────┤ │ ├─────┤   -   ╵ └──────┴──────┘ ╵   - └ ┘ - 0 3 6 \ No newline at end of file diff --git a/test/fixtures/boxplot/scale3.txt b/test/fixtures/boxplot/scale3.txt deleted file mode 100644 index 23d4014..0000000 --- a/test/fixtures/boxplot/scale3.txt +++ /dev/null @@ -1,6 +0,0 @@ - ┌ ┐ -   ╷ ┌───┬───┐ ╷   -   ├───┤ │ ├───┤   -   ╵ └───┴───┘ ╵   - └ ┘ - 0 5 10 \ No newline at end of file diff --git a/test/fixtures/boxplot/scale4.txt b/test/fixtures/boxplot/scale4.txt deleted file mode 100644 index cdd1eb5..0000000 --- a/test/fixtures/boxplot/scale4.txt +++ /dev/null @@ -1,6 +0,0 @@ - ┌ ┐ -   ╷ ┌─┬─┐ ╷   -   ├─┤ │ ├─┤   -   ╵ └─┴─┘ ╵   - └ ┘ - 0 10 20 \ No newline at end of file diff --git a/test/fixtures/boxplot/scale5.txt b/test/fixtures/boxplot/scale5.txt deleted file mode 100644 index a6cc1ff..0000000 --- a/test/fixtures/boxplot/scale5.txt +++ /dev/null @@ -1,6 +0,0 @@ - ┌ ┐ -  ╷┌┬┐╷   -  ├┤│├┤   -  ╵└┴┘╵   - └ ┘ - 0 20 40 \ No newline at end of file diff --git a/test/fixtures/canvas/ascii_print.txt b/test/fixtures/canvas/ascii_print.txt deleted file mode 100644 index 8d912e3..0000000 --- a/test/fixtures/canvas/ascii_print.txt +++ /dev/null @@ -1,10 +0,0 @@ -|.  '         *   .  "   .  *      `.v-" -| \.               .        \   ..-"`   -|   \.   " | `      v    `  ..-"`   '   -|   ""\="=""""\---------vvr=________"'  -|\ "    \{          ..-"`   .   *\  `   -|   /    /\.   \..-T` \       /   .**   -|      .    lv-/`   '      \     .     . -| ` .   ..-"` \.    .        \.         -|  ...-"`      `\.   *.         .\    " -L,-""  .          \..  `*.        . .   \ No newline at end of file diff --git a/test/fixtures/canvas/ascii_print_nocolor.txt b/test/fixtures/canvas/ascii_print_nocolor.txt deleted file mode 100644 index 681b83e..0000000 --- a/test/fixtures/canvas/ascii_print_nocolor.txt +++ /dev/null @@ -1,10 +0,0 @@ -|. ' * . " . * `.v-" -| \. . \ ..-"` -| \. " | ` v ` ..-"` ' -| ""\="=""""\---------vvr=________"' -|\ " \{ ..-"` . *\ ` -| / /\. \..-T` \ / .** -| . lv-/` ' \ . . -| ` . ..-"` \. . \. -| ...-"` `\. *. .\ " -L,-"" . \.. `*. . . \ No newline at end of file diff --git a/test/fixtures/canvas/ascii_printrow.txt b/test/fixtures/canvas/ascii_printrow.txt deleted file mode 100644 index aff9fea..0000000 --- a/test/fixtures/canvas/ascii_printrow.txt +++ /dev/null @@ -1 +0,0 @@ -|   \.   " | `      v    `  ..-"`   '   \ No newline at end of file diff --git a/test/fixtures/canvas/ascii_show.txt b/test/fixtures/canvas/ascii_show.txt deleted file mode 100644 index 8c62209..0000000 --- a/test/fixtures/canvas/ascii_show.txt +++ /dev/null @@ -1,12 +0,0 @@ -┌────────────────────────────────────────┐ -│|.  '         *   .  "   .  *      `.v-"│ -│| \.               .        \   ..-"`   │ -│|   \.   " | `      v    `  ..-"`   '   │ -│|   ""\="=""""\---------vvr=________"'  │ -│|\ "    \{          ..-"`   .   *\  `   │ -│|   /    /\.   \..-T` \       /   .**   │ -│|      .    lv-/`   '      \     .     .│ -│| ` .   ..-"` \.    .        \.         │ -│|  ...-"`      `\.   *.         .\    " │ -│L,-""  .          \..  `*.        . .   │ -└────────────────────────────────────────┘ \ No newline at end of file diff --git a/test/fixtures/canvas/ascii_show_nocolor.txt b/test/fixtures/canvas/ascii_show_nocolor.txt deleted file mode 100644 index 79867d3..0000000 --- a/test/fixtures/canvas/ascii_show_nocolor.txt +++ /dev/null @@ -1,12 +0,0 @@ -┌────────────────────────────────────────┐ -│|. ' * . " . * `.v-"│ -│| \. . \ ..-"` │ -│| \. " | ` v ` ..-"` ' │ -│| ""\="=""""\---------vvr=________"' │ -│|\ " \{ ..-"` . *\ ` │ -│| / /\. \..-T` \ / .** │ -│| . lv-/` ' \ . .│ -│| ` . ..-"` \. . \. │ -│| ...-"` `\. *. .\ " │ -│L,-"" . \.. `*. . . │ -└────────────────────────────────────────┘ \ No newline at end of file diff --git a/test/fixtures/canvas/block_print.txt b/test/fixtures/canvas/block_print.txt deleted file mode 100644 index 05c0925..0000000 --- a/test/fixtures/canvas/block_print.txt +++ /dev/null @@ -1,10 +0,0 @@ -▛▄  ▘         ▘   ▖  ▝   ▗  ▝      ▘▗▙▞▀ -▌ ▀▄               ▖        ▗   ▗▄▞▀▘   -▌▘  ▀▄   ▝ ▐ ▌      ▄    ▘  ▗▄▞▀▘   ▘   -▌   ▀▀▀█▀▛▀▀▀▀▀▀▀▀▀▀▄▄▄▄▄▄▟█▙▄▄▄▙▄▄▄▝▘  -▌▗ ▝    ▀▙          ▗▄▞▀▘   ▖   ▖▝  ▘   -▌   ▖    ▖▀▄   ▝▗▄▞▛▘ ▗       ▖   ▖▘▝   -▌      ▗    ▜▄▞▀▘   ▘      ▝     ▗     ▗ -▌ ▘ ▖   ▗▄▞▀▘ ▀▄    ▖        ▗▗         -▌  ▄▗▄▞▀▘      ▘▀▄   ▝▗         ▗▝    ▝ -▙▙▞▀▀  ▖          ▀▄▖  ▀▘▗        ▖ ▖   \ No newline at end of file diff --git a/test/fixtures/canvas/block_print_nocolor.txt b/test/fixtures/canvas/block_print_nocolor.txt deleted file mode 100644 index 1baeb54..0000000 --- a/test/fixtures/canvas/block_print_nocolor.txt +++ /dev/null @@ -1,10 +0,0 @@ -▛▄ ▘ ▘ ▖ ▝ ▗ ▝ ▘▗▙▞▀ -▌ ▀▄ ▖ ▗ ▗▄▞▀▘ -▌▘ ▀▄ ▝ ▐ ▌ ▄ ▘ ▗▄▞▀▘ ▘ -▌ ▀▀▀█▀▛▀▀▀▀▀▀▀▀▀▀▄▄▄▄▄▄▟█▙▄▄▄▙▄▄▄▝▘ -▌▗ ▝ ▀▙ ▗▄▞▀▘ ▖ ▖▝ ▘ -▌ ▖ ▖▀▄ ▝▗▄▞▛▘ ▗ ▖ ▖▘▝ -▌ ▗ ▜▄▞▀▘ ▘ ▝ ▗ ▗ -▌ ▘ ▖ ▗▄▞▀▘ ▀▄ ▖ ▗▗ -▌ ▄▗▄▞▀▘ ▘▀▄ ▝▗ ▗▝ ▝ -▙▙▞▀▀ ▖ ▀▄▖ ▀▘▗ ▖ ▖ \ No newline at end of file diff --git a/test/fixtures/canvas/block_printrow.txt b/test/fixtures/canvas/block_printrow.txt deleted file mode 100644 index 5be0798..0000000 --- a/test/fixtures/canvas/block_printrow.txt +++ /dev/null @@ -1 +0,0 @@ -▌▘  ▀▄   ▝ ▐ ▌      ▄    ▘  ▗▄▞▀▘   ▘   \ No newline at end of file diff --git a/test/fixtures/canvas/block_show.txt b/test/fixtures/canvas/block_show.txt deleted file mode 100644 index 8ac94e1..0000000 --- a/test/fixtures/canvas/block_show.txt +++ /dev/null @@ -1,12 +0,0 @@ -┌────────────────────────────────────────┐ -│▛▄  ▘         ▘   ▖  ▝   ▗  ▝      ▘▗▙▞▀│ -│▌ ▀▄               ▖        ▗   ▗▄▞▀▘   │ -│▌▘  ▀▄   ▝ ▐ ▌      ▄    ▘  ▗▄▞▀▘   ▘   │ -│▌   ▀▀▀█▀▛▀▀▀▀▀▀▀▀▀▀▄▄▄▄▄▄▟█▙▄▄▄▙▄▄▄▝▘  │ -│▌▗ ▝    ▀▙          ▗▄▞▀▘   ▖   ▖▝  ▘   │ -│▌   ▖    ▖▀▄   ▝▗▄▞▛▘ ▗       ▖   ▖▘▝   │ -│▌      ▗    ▜▄▞▀▘   ▘      ▝     ▗     ▗│ -│▌ ▘ ▖   ▗▄▞▀▘ ▀▄    ▖        ▗▗         │ -│▌  ▄▗▄▞▀▘      ▘▀▄   ▝▗         ▗▝    ▝ │ -│▙▙▞▀▀  ▖          ▀▄▖  ▀▘▗        ▖ ▖   │ -└────────────────────────────────────────┘ \ No newline at end of file diff --git a/test/fixtures/canvas/block_show_nocolor.txt b/test/fixtures/canvas/block_show_nocolor.txt deleted file mode 100644 index 9aee4e7..0000000 --- a/test/fixtures/canvas/block_show_nocolor.txt +++ /dev/null @@ -1,12 +0,0 @@ -┌────────────────────────────────────────┐ -│▛▄ ▘ ▘ ▖ ▝ ▗ ▝ ▘▗▙▞▀│ -│▌ ▀▄ ▖ ▗ ▗▄▞▀▘ │ -│▌▘ ▀▄ ▝ ▐ ▌ ▄ ▘ ▗▄▞▀▘ ▘ │ -│▌ ▀▀▀█▀▛▀▀▀▀▀▀▀▀▀▀▄▄▄▄▄▄▟█▙▄▄▄▙▄▄▄▝▘ │ -│▌▗ ▝ ▀▙ ▗▄▞▀▘ ▖ ▖▝ ▘ │ -│▌ ▖ ▖▀▄ ▝▗▄▞▛▘ ▗ ▖ ▖▘▝ │ -│▌ ▗ ▜▄▞▀▘ ▘ ▝ ▗ ▗│ -│▌ ▘ ▖ ▗▄▞▀▘ ▀▄ ▖ ▗▗ │ -│▌ ▄▗▄▞▀▘ ▘▀▄ ▝▗ ▗▝ ▝ │ -│▙▙▞▀▀ ▖ ▀▄▖ ▀▘▗ ▖ ▖ │ -└────────────────────────────────────────┘ \ No newline at end of file diff --git a/test/fixtures/canvas/braille_print.txt b/test/fixtures/canvas/braille_print.txt deleted file mode 100644 index 1126a08..0000000 --- a/test/fixtures/canvas/braille_print.txt +++ /dev/null @@ -1,10 +0,0 @@ -⡗⢄⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠄⠀⠀⠐⠀⠀⠀⢀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠁⢀⡢⠔⠊ -⡇⠁⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀ -⡇⠀⠀⠀⠑⢄⠀⠀⠀⠈⠀⠨⠀⡂⠀⠀⠀⠀⠀⠀⠤⠀⠀⠀⠀⠁⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀ -⡇⠀⠀⠀⠉⠉⠙⢍⠉⡉⠉⠉⠒⠒⠒⠒⠒⠒⠒⠒⠤⠤⠤⠤⢤⡤⠴⠮⣁⣀⣀⣀⣂⣀⣀⣀⠈⠁⠀⠀ -⡇⠠⠀⠐⠀⠀⠀⠀⠑⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠄⠀⠀⠀⠄⠐⠀⠀⠁⠀⠀⠀ -⡇⠀⠀⠀⠄⠀⠀⠀⠀⠄⠑⢄⠀⠀⠀⠐⢀⡠⠔⡊⠃⠀⠠⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⡀⠂⠐⠀⠀⠀ -⡇⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⢑⣤⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠠ -⡇⠀⠁⠀⡀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠑⢄⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⡇⠀⠀⡠⢀⡠⠔⠊⠁⠀⠀⠀⠀⠀⠀⠁⠑⢄⠀⠀⠀⠐⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠐⠀⠀⠀⠀⠈⠀ -⣇⡢⠔⠊⠉⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⡀⠀⠀⠑⠂⢀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⡀⠀⠀⠀ \ No newline at end of file diff --git a/test/fixtures/canvas/braille_print_nocolor.txt b/test/fixtures/canvas/braille_print_nocolor.txt deleted file mode 100644 index 35dd6a9..0000000 --- a/test/fixtures/canvas/braille_print_nocolor.txt +++ /dev/null @@ -1,10 +0,0 @@ -⡗⢄⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠄⠀⠀⠐⠀⠀⠀⢀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠁⢀⡢⠔⠊ -⡇⠁⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀ -⡇⠀⠀⠀⠑⢄⠀⠀⠀⠈⠀⠨⠀⡂⠀⠀⠀⠀⠀⠀⠤⠀⠀⠀⠀⠁⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀ -⡇⠀⠀⠀⠉⠉⠙⢍⠉⡉⠉⠉⠒⠒⠒⠒⠒⠒⠒⠒⠤⠤⠤⠤⢤⡤⠴⠮⣁⣀⣀⣀⣂⣀⣀⣀⠈⠁⠀⠀ -⡇⠠⠀⠐⠀⠀⠀⠀⠑⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠄⠀⠀⠀⠄⠐⠀⠀⠁⠀⠀⠀ -⡇⠀⠀⠀⠄⠀⠀⠀⠀⠄⠑⢄⠀⠀⠀⠐⢀⡠⠔⡊⠃⠀⠠⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⡀⠂⠐⠀⠀⠀ -⡇⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⢑⣤⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠠ -⡇⠀⠁⠀⡀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠑⢄⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⡇⠀⠀⡠⢀⡠⠔⠊⠁⠀⠀⠀⠀⠀⠀⠁⠑⢄⠀⠀⠀⠐⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠐⠀⠀⠀⠀⠈⠀ -⣇⡢⠔⠊⠉⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⡀⠀⠀⠑⠂⢀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⡀⠀⠀⠀ \ No newline at end of file diff --git a/test/fixtures/canvas/braille_printrow.txt b/test/fixtures/canvas/braille_printrow.txt deleted file mode 100644 index cfb4ccf..0000000 --- a/test/fixtures/canvas/braille_printrow.txt +++ /dev/null @@ -1 +0,0 @@ -⡇⠀⠀⠀⠑⢄⠀⠀⠀⠈⠀⠨⠀⡂⠀⠀⠀⠀⠀⠀⠤⠀⠀⠀⠀⠁⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀ \ No newline at end of file diff --git a/test/fixtures/canvas/braille_show.txt b/test/fixtures/canvas/braille_show.txt deleted file mode 100644 index c530eb4..0000000 --- a/test/fixtures/canvas/braille_show.txt +++ /dev/null @@ -1,12 +0,0 @@ -┌────────────────────────────────────────┐ -│⡗⢄⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠄⠀⠀⠐⠀⠀⠀⢀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠁⢀⡢⠔⠊│ -│⡇⠁⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀│ -│⡇⠀⠀⠀⠑⢄⠀⠀⠀⠈⠀⠨⠀⡂⠀⠀⠀⠀⠀⠀⠤⠀⠀⠀⠀⠁⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀│ -│⡇⠀⠀⠀⠉⠉⠙⢍⠉⡉⠉⠉⠒⠒⠒⠒⠒⠒⠒⠒⠤⠤⠤⠤⢤⡤⠴⠮⣁⣀⣀⣀⣂⣀⣀⣀⠈⠁⠀⠀│ -│⡇⠠⠀⠐⠀⠀⠀⠀⠑⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠄⠀⠀⠀⠄⠐⠀⠀⠁⠀⠀⠀│ -│⡇⠀⠀⠀⠄⠀⠀⠀⠀⠄⠑⢄⠀⠀⠀⠐⢀⡠⠔⡊⠃⠀⠠⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⡀⠂⠐⠀⠀⠀│ -│⡇⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⢑⣤⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠠│ -│⡇⠀⠁⠀⡀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠑⢄⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -│⡇⠀⠀⡠⢀⡠⠔⠊⠁⠀⠀⠀⠀⠀⠀⠁⠑⢄⠀⠀⠀⠐⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠐⠀⠀⠀⠀⠈⠀│ -│⣇⡢⠔⠊⠉⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⡀⠀⠀⠑⠂⢀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⡀⠀⠀⠀│ -└────────────────────────────────────────┘ \ No newline at end of file diff --git a/test/fixtures/canvas/braille_show_nocolor.txt b/test/fixtures/canvas/braille_show_nocolor.txt deleted file mode 100644 index bfc799c..0000000 --- a/test/fixtures/canvas/braille_show_nocolor.txt +++ /dev/null @@ -1,12 +0,0 @@ -┌────────────────────────────────────────┐ -│⡗⢄⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠄⠀⠀⠐⠀⠀⠀⢀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠁⢀⡢⠔⠊│ -│⡇⠁⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀│ -│⡇⠀⠀⠀⠑⢄⠀⠀⠀⠈⠀⠨⠀⡂⠀⠀⠀⠀⠀⠀⠤⠀⠀⠀⠀⠁⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀│ -│⡇⠀⠀⠀⠉⠉⠙⢍⠉⡉⠉⠉⠒⠒⠒⠒⠒⠒⠒⠒⠤⠤⠤⠤⢤⡤⠴⠮⣁⣀⣀⣀⣂⣀⣀⣀⠈⠁⠀⠀│ -│⡇⠠⠀⠐⠀⠀⠀⠀⠑⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠄⠀⠀⠀⠄⠐⠀⠀⠁⠀⠀⠀│ -│⡇⠀⠀⠀⠄⠀⠀⠀⠀⠄⠑⢄⠀⠀⠀⠐⢀⡠⠔⡊⠃⠀⠠⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⡀⠂⠐⠀⠀⠀│ -│⡇⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⢑⣤⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠠│ -│⡇⠀⠁⠀⡀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠑⢄⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -│⡇⠀⠀⡠⢀⡠⠔⠊⠁⠀⠀⠀⠀⠀⠀⠁⠑⢄⠀⠀⠀⠐⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠐⠀⠀⠀⠀⠈⠀│ -│⣇⡢⠔⠊⠉⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⡀⠀⠀⠑⠂⢀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⡀⠀⠀⠀│ -└────────────────────────────────────────┘ \ No newline at end of file diff --git a/test/fixtures/canvas/density_print.txt b/test/fixtures/canvas/density_print.txt deleted file mode 100644 index 854241b..0000000 --- a/test/fixtures/canvas/density_print.txt +++ /dev/null @@ -1,10 +0,0 @@ -▒░  ░         ░   ░  ░   ░  ░      ░ ▒▒▓ -▒ ░░               ░        ░    ▒▒▒▒   -▒ ░ ░░   ░ ▒ ▒      ▒    ░   ▒▒▒▒   ░   -▒   ░░▒▒░▒░░░░░░░░░░░░░░░▒▒▒▒░░░▒░░░░░  -▒░ ░    ░▒           ▒▒▒▒   ░   ░░  ░   -▒   ▒    ░░░   ░ ▒▒▒▒ ░       ░   ░░░   -▒      ░    ░▒▒▒▒   ░      ░     ░     ░ -▒ ░ ░    ▒▒▒▒ ░░    ░        ░░         -▒  ▒ ▒▒▒▒      ░░░   ░░         ░░    ░ -█▒▒▒▒  ░          ░░░  ▒░░        ░ ░   \ No newline at end of file diff --git a/test/fixtures/canvas/density_print_nocolor.txt b/test/fixtures/canvas/density_print_nocolor.txt deleted file mode 100644 index 3b49a8b..0000000 --- a/test/fixtures/canvas/density_print_nocolor.txt +++ /dev/null @@ -1,10 +0,0 @@ -▒░ ░ ░ ░ ░ ░ ░ ░ ▒▒▓ -▒ ░░ ░ ░ ▒▒▒▒ -▒ ░ ░░ ░ ▒ ▒ ▒ ░ ▒▒▒▒ ░ -▒ ░░▒▒░▒░░░░░░░░░░░░░░░▒▒▒▒░░░▒░░░░░ -▒░ ░ ░▒ ▒▒▒▒ ░ ░░ ░ -▒ ▒ ░░░ ░ ▒▒▒▒ ░ ░ ░░░ -▒ ░ ░▒▒▒▒ ░ ░ ░ ░ -▒ ░ ░ ▒▒▒▒ ░░ ░ ░░ -▒ ▒ ▒▒▒▒ ░░░ ░░ ░░ ░ -█▒▒▒▒ ░ ░░░ ▒░░ ░ ░ \ No newline at end of file diff --git a/test/fixtures/canvas/density_printrow.txt b/test/fixtures/canvas/density_printrow.txt deleted file mode 100644 index 121b70e..0000000 --- a/test/fixtures/canvas/density_printrow.txt +++ /dev/null @@ -1 +0,0 @@ -▒ ░ ░░   ░ ▒ ▒      ▒    ░   ▒▒▒▒   ░   \ No newline at end of file diff --git a/test/fixtures/canvas/density_show.txt b/test/fixtures/canvas/density_show.txt deleted file mode 100644 index 4cdb737..0000000 --- a/test/fixtures/canvas/density_show.txt +++ /dev/null @@ -1,12 +0,0 @@ -┌────────────────────────────────────────┐ -│▒░  ░         ░   ░  ░   ░  ░      ░ ▒▒▓│ -│▒ ░░               ░        ░    ▒▒▒▒   │ -│▒ ░ ░░   ░ ▒ ▒      ▒    ░   ▒▒▒▒   ░   │ -│▒   ░░▒▒░▒░░░░░░░░░░░░░░░▒▒▒▒░░░▒░░░░░  │ -│▒░ ░    ░▒           ▒▒▒▒   ░   ░░  ░   │ -│▒   ▒    ░░░   ░ ▒▒▒▒ ░       ░   ░░░   │ -│▒      ░    ░▒▒▒▒   ░      ░     ░     ░│ -│▒ ░ ░    ▒▒▒▒ ░░    ░        ░░         │ -│▒  ▒ ▒▒▒▒      ░░░   ░░         ░░    ░ │ -│█▒▒▒▒  ░          ░░░  ▒░░        ░ ░   │ -└────────────────────────────────────────┘ \ No newline at end of file diff --git a/test/fixtures/canvas/density_show_nocolor.txt b/test/fixtures/canvas/density_show_nocolor.txt deleted file mode 100644 index 2e93b83..0000000 --- a/test/fixtures/canvas/density_show_nocolor.txt +++ /dev/null @@ -1,12 +0,0 @@ -┌────────────────────────────────────────┐ -│▒░ ░ ░ ░ ░ ░ ░ ░ ▒▒▓│ -│▒ ░░ ░ ░ ▒▒▒▒ │ -│▒ ░ ░░ ░ ▒ ▒ ▒ ░ ▒▒▒▒ ░ │ -│▒ ░░▒▒░▒░░░░░░░░░░░░░░░▒▒▒▒░░░▒░░░░░ │ -│▒░ ░ ░▒ ▒▒▒▒ ░ ░░ ░ │ -│▒ ▒ ░░░ ░ ▒▒▒▒ ░ ░ ░░░ │ -│▒ ░ ░▒▒▒▒ ░ ░ ░ ░│ -│▒ ░ ░ ▒▒▒▒ ░░ ░ ░░ │ -│▒ ▒ ▒▒▒▒ ░░░ ░░ ░░ ░ │ -│█▒▒▒▒ ░ ░░░ ▒░░ ░ ░ │ -└────────────────────────────────────────┘ \ No newline at end of file diff --git a/test/fixtures/canvas/dot_print.txt b/test/fixtures/canvas/dot_print.txt deleted file mode 100644 index d496a2a..0000000 --- a/test/fixtures/canvas/dot_print.txt +++ /dev/null @@ -1,10 +0,0 @@ -:.  '         '   .  '   .  '      ' :.' -: '.               .        .    ..''   -: ' '.   ' : :      .    '   ..''   '   -:   ''':':''''''''''.......::...:...''  -:. '    ':           ..''   .   .'  '   -:   .    .'.   ' ..:' .       .   .''   -:      .    '..''   '      '     .     . -: ' .    ..'' '.    .        ..         -:  . ..''      ''.   '.         .'    ' -::.''  .          '..  ''.        . .   \ No newline at end of file diff --git a/test/fixtures/canvas/dot_print_nocolor.txt b/test/fixtures/canvas/dot_print_nocolor.txt deleted file mode 100644 index 23eff73..0000000 --- a/test/fixtures/canvas/dot_print_nocolor.txt +++ /dev/null @@ -1,10 +0,0 @@ -:. ' ' . ' . ' ' :.' -: '. . . ..'' -: ' '. ' : : . ' ..'' ' -: ''':':''''''''''.......::...:...'' -:. ' ': ..'' . .' ' -: . .'. ' ..:' . . .'' -: . '..'' ' ' . . -: ' . ..'' '. . .. -: . ..'' ''. '. .' ' -::.'' . '.. ''. . . \ No newline at end of file diff --git a/test/fixtures/canvas/dot_printrow.txt b/test/fixtures/canvas/dot_printrow.txt deleted file mode 100644 index 19e6e98..0000000 --- a/test/fixtures/canvas/dot_printrow.txt +++ /dev/null @@ -1 +0,0 @@ -: ' '.   ' : :      .    '   ..''   '   \ No newline at end of file diff --git a/test/fixtures/canvas/dot_show.txt b/test/fixtures/canvas/dot_show.txt deleted file mode 100644 index a55f732..0000000 --- a/test/fixtures/canvas/dot_show.txt +++ /dev/null @@ -1,12 +0,0 @@ -┌────────────────────────────────────────┐ -│:.  '         '   .  '   .  '      ' :.'│ -│: '.               .        .    ..''   │ -│: ' '.   ' : :      .    '   ..''   '   │ -│:   ''':':''''''''''.......::...:...''  │ -│:. '    ':           ..''   .   .'  '   │ -│:   .    .'.   ' ..:' .       .   .''   │ -│:      .    '..''   '      '     .     .│ -│: ' .    ..'' '.    .        ..         │ -│:  . ..''      ''.   '.         .'    ' │ -│::.''  .          '..  ''.        . .   │ -└────────────────────────────────────────┘ \ No newline at end of file diff --git a/test/fixtures/canvas/dot_show_nocolor.txt b/test/fixtures/canvas/dot_show_nocolor.txt deleted file mode 100644 index bb2287a..0000000 --- a/test/fixtures/canvas/dot_show_nocolor.txt +++ /dev/null @@ -1,12 +0,0 @@ -┌────────────────────────────────────────┐ -│:. ' ' . ' . ' ' :.'│ -│: '. . . ..'' │ -│: ' '. ' : : . ' ..'' ' │ -│: ''':':''''''''''.......::...:...'' │ -│:. ' ': ..'' . .' ' │ -│: . .'. ' ..:' . . .'' │ -│: . '..'' ' ' . .│ -│: ' . ..'' '. . .. │ -│: . ..'' ''. '. .' ' │ -│::.'' . '.. ''. . . │ -└────────────────────────────────────────┘ \ No newline at end of file diff --git a/test/fixtures/canvas/empty_braille_show.txt b/test/fixtures/canvas/empty_braille_show.txt deleted file mode 100644 index 325df03..0000000 --- a/test/fixtures/canvas/empty_braille_show.txt +++ /dev/null @@ -1,12 +0,0 @@ -┌────────────────────────────────────────┐ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -└────────────────────────────────────────┘ \ No newline at end of file diff --git a/test/fixtures/canvas/empty_show.txt b/test/fixtures/canvas/empty_show.txt deleted file mode 100644 index 5a905f3..0000000 --- a/test/fixtures/canvas/empty_show.txt +++ /dev/null @@ -1,12 +0,0 @@ -┌────────────────────────────────────────┐ -│                                        │ -│                                        │ -│                                        │ -│                                        │ -│                                        │ -│                                        │ -│                                        │ -│                                        │ -│                                        │ -│                                        │ -└────────────────────────────────────────┘ \ No newline at end of file diff --git a/test/fixtures/histogram/default.txt b/test/fixtures/histogram/default.txt deleted file mode 100644 index 492ab73..0000000 --- a/test/fixtures/histogram/default.txt +++ /dev/null @@ -1,20 +0,0 @@ - ┌ ┐ - [-4.5, -4.0) ┤ 1   - [-4.0, -3.5) ┤ 2   - [-3.5, -3.0) ┤ 8   - [-3.0, -2.5) ┤▇ 65   - [-2.5, -2.0) ┤▇▇▇ 169   - [-2.0, -1.5) ┤▇▇▇▇▇▇▇▇ 456   - [-1.5, -1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911   - [-1.0, -0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514   - [-0.5,  0.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956   - [ 0.0,  0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825   - [ 0.5,  1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500   - [ 1.0,  1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930   - [ 1.5,  2.0) ┤▇▇▇▇▇▇▇▇ 436   - [ 2.0,  2.5) ┤▇▇▇ 162   - [ 2.5,  3.0) ┤▇ 50   - [ 3.0,  3.5) ┤ 10   - [ 3.5,  4.0) ┤ 5   - └ ┘ - Frequency \ No newline at end of file diff --git a/test/fixtures/histogram/default_1e-2.txt b/test/fixtures/histogram/default_1e-2.txt deleted file mode 100644 index e43d9c6..0000000 --- a/test/fixtures/histogram/default_1e-2.txt +++ /dev/null @@ -1,20 +0,0 @@ - ┌ ┐ - [-0.045, -0.04 ) ┤ 1   - [-0.04 , -0.035) ┤ 2   - [-0.035, -0.03 ) ┤ 8   - [-0.03 , -0.025) ┤▇ 65   - [-0.025, -0.02 ) ┤▇▇▇ 169   - [-0.02 , -0.015) ┤▇▇▇▇▇▇▇▇ 456   - [-0.015, -0.01 ) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911   - [-0.01 , -0.005) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514   - [-0.005, -0.0 ) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956   - [ 0.0 ,  0.005) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825   - [ 0.005,  0.01 ) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500   - [ 0.01 ,  0.015) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930   - [ 0.015,  0.02 ) ┤▇▇▇▇▇▇▇▇ 436   - [ 0.02 ,  0.025) ┤▇▇▇ 162   - [ 0.025,  0.03 ) ┤▇ 50   - [ 0.03 ,  0.035) ┤ 10   - [ 0.035,  0.04 ) ┤ 5   - └ ┘ - Frequency \ No newline at end of file diff --git a/test/fixtures/histogram/default_1e2.txt b/test/fixtures/histogram/default_1e2.txt deleted file mode 100644 index 56fa00c..0000000 --- a/test/fixtures/histogram/default_1e2.txt +++ /dev/null @@ -1,20 +0,0 @@ - ┌ ┐ - [-450.0, -400.0) ┤ 1   - [-400.0, -350.0) ┤ 2   - [-350.0, -300.0) ┤ 8   - [-300.0, -250.0) ┤▇ 65   - [-250.0, -200.0) ┤▇▇▇ 169   - [-200.0, -150.0) ┤▇▇▇▇▇▇▇▇ 456   - [-150.0, -100.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911   - [-100.0,  -50.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514   - [ -50.0,  0.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956   - [ 0.0,  50.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825   - [ 50.0,  100.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500   - [ 100.0,  150.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930   - [ 150.0,  200.0) ┤▇▇▇▇▇▇▇▇ 436   - [ 200.0,  250.0) ┤▇▇▇ 162   - [ 250.0,  300.0) ┤▇ 50   - [ 300.0,  350.0) ┤ 10   - [ 350.0,  400.0) ┤ 5   - └ ┘ - Frequency \ No newline at end of file diff --git a/test/fixtures/histogram/default_nocolor.txt b/test/fixtures/histogram/default_nocolor.txt deleted file mode 100644 index d8f82f1..0000000 --- a/test/fixtures/histogram/default_nocolor.txt +++ /dev/null @@ -1,20 +0,0 @@ - ┌ ┐ - [-4.5, -4.0) ┤ 1 - [-4.0, -3.5) ┤ 2 - [-3.5, -3.0) ┤ 8 - [-3.0, -2.5) ┤▇ 65 - [-2.5, -2.0) ┤▇▇▇ 169 - [-2.0, -1.5) ┤▇▇▇▇▇▇▇▇ 456 - [-1.5, -1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911 - [-1.0, -0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514 - [-0.5, 0.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956 - [ 0.0, 0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825 - [ 0.5, 1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500 - [ 1.0, 1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930 - [ 1.5, 2.0) ┤▇▇▇▇▇▇▇▇ 436 - [ 2.0, 2.5) ┤▇▇▇ 162 - [ 2.5, 3.0) ┤▇ 50 - [ 3.0, 3.5) ┤ 10 - [ 3.5, 4.0) ┤ 5 - └ ┘ - Frequency \ No newline at end of file diff --git a/test/fixtures/histogram/hist_params.txt b/test/fixtures/histogram/hist_params.txt deleted file mode 100644 index 0326dca..0000000 --- a/test/fixtures/histogram/hist_params.txt +++ /dev/null @@ -1,8 +0,0 @@ - ┌ ┐ - (-6.0, -4.0] ┤ 1   - (-4.0, -2.0] ┤▇▇ 244   - (-2.0,  0.0] ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 4837   - ( 0.0,  2.0] ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 4691   - ( 2.0,  4.0] ┤▇▇ 227   - └ ┘ - Frequency \ No newline at end of file diff --git a/test/fixtures/histogram/log10.txt b/test/fixtures/histogram/log10.txt deleted file mode 100644 index 0f1a984..0000000 --- a/test/fixtures/histogram/log10.txt +++ /dev/null @@ -1,20 +0,0 @@ - ┌ ┐ - [-4.5, -4.0) ┤ 1   - [-4.0, -3.5) ┤▇▇▇ 2   - [-3.5, -3.0) ┤▇▇▇▇▇▇▇▇▇ 8   - [-3.0, -2.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 65   - [-2.5, -2.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 169   - [-2.0, -1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 456   - [-1.5, -1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911   - [-1.0, -0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514   - [-0.5,  0.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956   - [ 0.0,  0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825   - [ 0.5,  1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500   - [ 1.0,  1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930   - [ 1.5,  2.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 436   - [ 2.0,  2.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 162   - [ 2.5,  3.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 50   - [ 3.0,  3.5) ┤▇▇▇▇▇▇▇▇▇▇ 10   - [ 3.5,  4.0) ┤▇▇▇▇▇▇▇ 5   - └ ┘ - Frequency [log10] \ No newline at end of file diff --git a/test/fixtures/histogram/log10_label.txt b/test/fixtures/histogram/log10_label.txt deleted file mode 100644 index 0a55e90..0000000 --- a/test/fixtures/histogram/log10_label.txt +++ /dev/null @@ -1,20 +0,0 @@ - ┌ ┐ - [-4.5, -4.0) ┤ 1   - [-4.0, -3.5) ┤▇▇▇ 2   - [-3.5, -3.0) ┤▇▇▇▇▇▇▇▇▇ 8   - [-3.0, -2.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 65   - [-2.5, -2.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 169   - [-2.0, -1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 456   - [-1.5, -1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911   - [-1.0, -0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514   - [-0.5,  0.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956   - [ 0.0,  0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825   - [ 0.5,  1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500   - [ 1.0,  1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930   - [ 1.5,  2.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 436   - [ 2.0,  2.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 162   - [ 2.5,  3.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 50   - [ 3.0,  3.5) ┤▇▇▇▇▇▇▇▇▇▇ 10   - [ 3.5,  4.0) ┤▇▇▇▇▇▇▇ 5   - └ ┘ - custom label \ No newline at end of file diff --git a/test/fixtures/histogram/parameters1.txt b/test/fixtures/histogram/parameters1.txt deleted file mode 100644 index 202e335..0000000 --- a/test/fixtures/histogram/parameters1.txt +++ /dev/null @@ -1,21 +0,0 @@ - My Histogram - ┌ ┐ - [-4.5, -4.0) ┤ 1   - [-4.0, -3.5) ┤ 2   - [-3.5, -3.0) ┤ 8   - [-3.0, -2.5) ┤▇ 65   - [-2.5, -2.0) ┤▇▇▇ 169   - [-2.0, -1.5) ┤▇▇▇▇▇▇▇▇ 456   - [-1.5, -1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911   - [-1.0, -0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514   - [-0.5,  0.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956   - [ 0.0,  0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825   - [ 0.5,  1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500   - [ 1.0,  1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930   - [ 1.5,  2.0) ┤▇▇▇▇▇▇▇▇ 436   - [ 2.0,  2.5) ┤▇▇▇ 162   - [ 2.5,  3.0) ┤▇ 50   - [ 3.0,  3.5) ┤ 10   - [ 3.5,  4.0) ┤ 5   - └ ┘ - Absolute Frequency \ No newline at end of file diff --git a/test/fixtures/histogram/parameters1_nolabels.txt b/test/fixtures/histogram/parameters1_nolabels.txt deleted file mode 100644 index 28b913b..0000000 --- a/test/fixtures/histogram/parameters1_nolabels.txt +++ /dev/null @@ -1,20 +0,0 @@ - My Histogram - ┌ ┐ -  ┤ 1   -  ┤ 2   -  ┤ 8   -  ┤▇ 65   -  ┤▇▇▇ 169   -  ┤▇▇▇▇▇▇▇▇ 456   -  ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911   -  ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514   -  ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956   -  ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825   -  ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500   -  ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930   -  ┤▇▇▇▇▇▇▇▇ 436   -  ┤▇▇▇ 162   -  ┤▇ 50   -  ┤ 10   -  ┤ 5   - └ ┘ \ No newline at end of file diff --git a/test/fixtures/histogram/parameters2.txt b/test/fixtures/histogram/parameters2.txt deleted file mode 100644 index 6df9051..0000000 --- a/test/fixtures/histogram/parameters2.txt +++ /dev/null @@ -1,21 +0,0 @@ - My Histogram - ┌──────────────────────────────────────────────────┐ - [-4.5, -4.0) │ 1 │ - [-4.0, -3.5) │ 2 │ - [-3.5, -3.0) │ 8 │ - [-3.0, -2.5) │= 65 │ - [-2.5, -2.0) │==== 169 │ - [-2.0, -1.5) │========== 456 │ - [-1.5, -1.0) │==================== 911 │ - [-1.0, -0.5) │================================== 1514 │ - [-0.5,  0.0) │============================================ 1956 │ - [ 0.0,  0.5) │========================================= 1825 │ - [ 0.5,  1.0) │================================== 1500 │ - [ 1.0,  1.5) │===================== 930 │ - [ 1.5,  2.0) │========== 436 │ - [ 2.0,  2.5) │==== 162 │ - [ 2.5,  3.0) │= 50 │ - [ 3.0,  3.5) │ 10 │ - [ 3.5,  4.0) │ 5 │ - └──────────────────────────────────────────────────┘ - Absolute Frequency \ No newline at end of file diff --git a/test/fixtures/lineplot/blue.txt b/test/fixtures/lineplot/blue.txt deleted file mode 100644 index 6de7331..0000000 --- a/test/fixtures/lineplot/blue.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│ points1 -  │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡗⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠉⠑⠢⢄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠛⢖⠒⠒⠒⠒⠒⠒⡲⠖⠓⠒⠒⠒⠒⠒⠒⠒⠒⠒⢺│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│ -  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ - -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│ - └────────────────────────────────────────┘ - -1  3 \ No newline at end of file diff --git a/test/fixtures/lineplot/canvassize.txt b/test/fixtures/lineplot/canvassize.txt deleted file mode 100644 index 6520d17..0000000 --- a/test/fixtures/lineplot/canvassize.txt +++ /dev/null @@ -1,9 +0,0 @@ - Scatter - ┌──────────┐ - 2 │'':.     :│ -  │'':'':':':│ -  │  :  .'. :│ -  │  :.'  '.:│ - -5 │..:      :│ - └──────────┘ - -1  3 \ No newline at end of file diff --git a/test/fixtures/lineplot/dates1.txt b/test/fixtures/lineplot/dates1.txt deleted file mode 100644 index d06cdbe..0000000 --- a/test/fixtures/lineplot/dates1.txt +++ /dev/null @@ -1,9 +0,0 @@ - ┌────────────────────────────────────────┐ - 1 │⠀⠀⠀⡠⠒⠉⠉⠉⠑⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠉⠉⠉⠒⠢⡀⠀⠀│ sin -  │⠀⡔⠉⠀⠀⠀⠀⠀⠀⠀⠈⠢⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠎⠁⠀⠀⠀⠀⠀⠀⠀⠑⠤⡀│ -  │⠮⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠬⠦⡤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡤⠮⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠼│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢄⡀⠀⠀⠀⠀⠀⠀⠀⡔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - -1 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠦⣀⣀⣀⡠⠤⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 1999-12-31  2000-01-30 - date \ No newline at end of file diff --git a/test/fixtures/lineplot/dates2.txt b/test/fixtures/lineplot/dates2.txt deleted file mode 100644 index df1b44e..0000000 --- a/test/fixtures/lineplot/dates2.txt +++ /dev/null @@ -1,9 +0,0 @@ - ┌────────────────────────────────────────┐ - 1 │⠉⠑⠒⣤⠒⠉⠉⠉⠑⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠒⠉⠉⠉⠑⢢⡔⠊⠉⠉⠉⠒⠢⡀⠀⠀│ sin -  │⠀⡔⠉⠀⠣⢄⠀⠀⠀⠀⠈⠢⡄⠀⠀⠀⠀⠀⠀⠀⠀⡔⠉⠀⠀⠀⠀⢀⠎⠁⠈⠢⡄⠀⠀⠀⠀⠑⠤⡀│ cos -  │⠮⠤⠤⠤⠤⠤⠵⡤⠤⠤⠤⠤⠬⠦⡤⠤⠤⠤⠤⢤⠮⠤⠤⠤⠤⠤⡤⠮⠤⠤⠤⠤⠬⠦⡤⠤⠤⠤⠤⠼│ -  │⠀⠀⠀⠀⠀⠀⠀⠘⢆⡀⠀⠀⠀⠀⠘⢄⡀⡠⠒⠁⠀⠀⠀⠀⡔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠘⢄⡀⠀⠀⠀│ - -1 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⢄⣀⣀⣀⠤⠜⠧⣀⣀⣀⡠⠤⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠦⣀⣀│ - └────────────────────────────────────────┘ - 1999-12-31  2000-01-30 - date \ No newline at end of file diff --git a/test/fixtures/lineplot/default.txt b/test/fixtures/lineplot/default.txt deleted file mode 100644 index d71cdbd..0000000 --- a/test/fixtures/lineplot/default.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│ -  │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡗⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠉⠑⠢⢄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠛⢖⠒⠒⠒⠒⠒⠒⡲⠖⠓⠒⠒⠒⠒⠒⠒⠒⠒⠒⢺│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│ -  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ - -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│ - └────────────────────────────────────────┘ - -1  3 \ No newline at end of file diff --git a/test/fixtures/lineplot/issue32_fix.txt b/test/fixtures/lineplot/issue32_fix.txt deleted file mode 100644 index de076b3..0000000 --- a/test/fixtures/lineplot/issue32_fix.txt +++ /dev/null @@ -1,29 +0,0 @@ - ┌────────────────────────────────────────┐ - 700 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡠⠤⠤⠔⠒⠒⠉⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⢀⣀⣀⠤⠤⠒⠒⠊⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - 0 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 0  20 \ No newline at end of file diff --git a/test/fixtures/lineplot/limits.txt b/test/fixtures/lineplot/limits.txt deleted file mode 100644 index f704585..0000000 --- a/test/fixtures/lineplot/limits.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2.5 │⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀│ -  │⠀⠀⠀⠀⠈⠑⠢⢄⣀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⡇⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠒⠤⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠁⠀⠀⡇⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠉⠒⠤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⡇⠀⠀⠀│ -  │⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠬⠵⠦⡤⠤⠤⠤⠤⠤⢤⠴⠭⠤⠤⠤⠤⠤⠤⠤⡧⠤⠤⠤│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⠜⢎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⢀⠤⠊⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⣀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡧⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⡇⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠁⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⡇⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⡠⠊⠁⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⡇⠀⠀⠀│ -  │⠀⠀⠀⠀⢀⠔⠉⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢄⡇⠀⠀⠀│ - -5.5 │⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀│ - └────────────────────────────────────────┘ - -1.5  3.5 \ No newline at end of file diff --git a/test/fixtures/lineplot/nocolor.txt b/test/fixtures/lineplot/nocolor.txt deleted file mode 100644 index 605904e..0000000 --- a/test/fixtures/lineplot/nocolor.txt +++ /dev/null @@ -1,20 +0,0 @@ - Scatter - ┌────────────────────────────────────────┐ - 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│ points1 - │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⡇⠀⠀⠀⠀⠀⢀⣀⣀⠤⠤⠔⠒⠊⠉⠁⠀⠀⠀⠀⠀⢀⣀⣀⠤⡤⠔⠓⠊⢹│ points2 - │⠀⠀⠀⠀⠀⠀⠀⢀⣀⡨⡷⠶⠶⣒⠊⠉⠁⠀⠀⠀⠀⠀⢀⣀⡠⠤⠤⠒⠒⠊⠉⠁⢀⠔⠊⠀⠀⠀⠀⢸│ points3 - │⠀⠀⠀⠀⠀⠉⠉⠁⠀⠀⡇⠀⠀⠀⠉⠑⠢⢄⣀⠀⠉⠉⠁⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│ - │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠛⢖⠒⠒⠒⠒⠒⠒⡲⠖⠓⠒⠒⠒⠒⠒⠒⠒⠒⠒⢺│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - y │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│ - │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│ - │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│ - │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ - -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│ - └────────────────────────────────────────┘ - -1 3 - x \ No newline at end of file diff --git a/test/fixtures/lineplot/nogrid.txt b/test/fixtures/lineplot/nogrid.txt deleted file mode 100644 index 6e93234..0000000 --- a/test/fixtures/lineplot/nogrid.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│ -  │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠑⠢⢄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢆⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│ -  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ - -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│ - └────────────────────────────────────────┘ - -1  3 \ No newline at end of file diff --git a/test/fixtures/lineplot/parameters1.txt b/test/fixtures/lineplot/parameters1.txt deleted file mode 100644 index 18f2444..0000000 --- a/test/fixtures/lineplot/parameters1.txt +++ /dev/null @@ -1,20 +0,0 @@ - Scatter - ┌────────────────────────────────────────┐ - 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│ points1 -  │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡗⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠉⠑⠢⢄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠛⢖⠒⠒⠒⠒⠒⠒⡲⠖⠓⠒⠒⠒⠒⠒⠒⠒⠒⠒⢺│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - y  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│ -  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ - -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│ - └────────────────────────────────────────┘ - -1  3 - x \ No newline at end of file diff --git a/test/fixtures/lineplot/parameters2.txt b/test/fixtures/lineplot/parameters2.txt deleted file mode 100644 index 6306463..0000000 --- a/test/fixtures/lineplot/parameters2.txt +++ /dev/null @@ -1,20 +0,0 @@ - Scatter - ┌────────────────────────────────────────┐ - 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│ points1 -  │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⠤⡤⠔⠓⠊⢹│ points2 -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡗⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡠⠤⠤⠒⠒⠊⠉⠁⢀⠔⠊⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠉⠑⠢⢄⣀⠀⠉⠉⠁⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠛⢖⠒⠒⠒⠒⠒⠒⡲⠖⠓⠒⠒⠒⠒⠒⠒⠒⠒⠒⢺│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - y  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│ -  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ - -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│ - └────────────────────────────────────────┘ - -1  3 - x \ No newline at end of file diff --git a/test/fixtures/lineplot/parameters3.txt b/test/fixtures/lineplot/parameters3.txt deleted file mode 100644 index be64978..0000000 --- a/test/fixtures/lineplot/parameters3.txt +++ /dev/null @@ -1,20 +0,0 @@ - Scatter - ┌────────────────────────────────────────┐ - 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│ points1 -  │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⡇⠀⠀⠀⠀⠀⢀⣀⣀⠤⠤⠔⠒⠊⠉⠁⠀⠀⠀⠀⠀⢀⣀⣀⠤⡤⠔⠓⠊⢹│ points2 -  │⠀⠀⠀⠀⠀⠀⠀⢀⣀⡨⡷⠶⠶⣒⠊⠉⠁⠀⠀⠀⠀⠀⢀⣀⡠⠤⠤⠒⠒⠊⠉⠁⢀⠔⠊⠀⠀⠀⠀⢸│ points3 -  │⠀⠀⠀⠀⠀⠉⠉⠁⠀⠀⡇⠀⠀⠀⠉⠑⠢⢄⣀⠀⠉⠉⠁⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠛⢖⠒⠒⠒⠒⠒⠒⡲⠖⠓⠒⠒⠒⠒⠒⠒⠒⠒⠒⢺│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - y  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│ -  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ - -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│ - └────────────────────────────────────────┘ - -1  3 - x \ No newline at end of file diff --git a/test/fixtures/lineplot/range1.txt b/test/fixtures/lineplot/range1.txt deleted file mode 100644 index ab7b3b7..0000000 --- a/test/fixtures/lineplot/range1.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 10 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - 6 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 1  5 \ No newline at end of file diff --git a/test/fixtures/lineplot/range2.txt b/test/fixtures/lineplot/range2.txt deleted file mode 100644 index 2e68cd4..0000000 --- a/test/fixtures/lineplot/range2.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 10 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - 6 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 11  15 \ No newline at end of file diff --git a/test/fixtures/lineplot/scale1.txt b/test/fixtures/lineplot/scale1.txt deleted file mode 100644 index 7d65bfd..0000000 --- a/test/fixtures/lineplot/scale1.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - -14.998 │⠉⠒⠤⣀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⡇⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠉⠒⠤⡀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠈⡗⠢⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠈⠑⠢⣀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠤⠊⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠉⢆⠀⠀⠀⠀⢀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⢀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⠜⢇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⡠⠒⠁⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⢀⠔⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⢀⠔⠁⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ - -15.005 │⣀⠔⠁⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢆⡇⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - -1000  4000 \ No newline at end of file diff --git a/test/fixtures/lineplot/scale2.txt b/test/fixtures/lineplot/scale2.txt deleted file mode 100644 index cc28b2c..0000000 --- a/test/fixtures/lineplot/scale2.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2000 │⠉⠑⠒⠤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠤⢺│ -  │⠀⠀⠀⠀⠀⠈⠉⠒⠤⢄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⠊⠁⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠒⠢⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠊⠀⠀⠀⠀⠀⢸│ -  │⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣉⣑⣒⣤⣀⣀⣀⣀⣀⣀⣀⣀⣀⣔⣊⣀⣀⣀⣀⣀⣀⣀⣀⣸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠢⡀⠀⠀⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣈⠶⡊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠊⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠉⠀⠀⠀⠀⠀⠀⠀⠈⠢⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⡠⠔⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⡠⠔⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⠤⡀⠀⢸│ -  │⢀⡠⠒⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⣸│ -  │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ - -6000 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 14.999  15.003 \ No newline at end of file diff --git a/test/fixtures/lineplot/scale3.txt b/test/fixtures/lineplot/scale3.txt deleted file mode 100644 index cc0bae0..0000000 --- a/test/fixtures/lineplot/scale3.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 4000000 │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊│ -  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀│ -  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠁⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⣀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⡇⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - 0 │⠀⠀⠀⠀⢀⣇⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - -100000  700000 \ No newline at end of file diff --git a/test/fixtures/lineplot/scale3_small.txt b/test/fixtures/lineplot/scale3_small.txt deleted file mode 100644 index bafe62d..0000000 --- a/test/fixtures/lineplot/scale3_small.txt +++ /dev/null @@ -1,8 +0,0 @@ - ┌─────┐ - 4000000 │⢸⠀⠀⠀⡜│ -  │⢸⠀⠀⡜⠀│ -  │⢸⠀⡰⠁⠀│ -  │⢸⢰⠁⠀⠀│ - 0 │⢸⠃⠀⠀⠀│ - └─────┘ - -100000700000 \ No newline at end of file diff --git a/test/fixtures/lineplot/slope1.txt b/test/fixtures/lineplot/slope1.txt deleted file mode 100644 index ca947c1..0000000 --- a/test/fixtures/lineplot/slope1.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2 │⠉⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⢇⠀⠀⠀⠀⢀⣀⠤⠒⠉│ -  │⠀⠀⠈⠒⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠘⣄⠤⠔⠊⠁⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⡜⠒⠉⢱⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠉⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠤⠒⠉⠁⢰⠁⠀⠀⠀⢇⠀⠀⠀⠀⠀⠀⠀│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠚⡖⠒⠒⠒⠒⠒⠒⣒⠶⠖⠚⠓⠒⠒⠒⠒⢒⠗⠒⠒⠒⠒⠚⡖⠒⠒⠒⠒⠒⠒│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⢀⡠⠔⠒⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⢀⣀⠤⠒⠙⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⣀⠤⠔⠊⠁⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀│ -  │⠔⠒⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢱⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀│ - -5 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣│ - └────────────────────────────────────────┘ - 1  5 \ No newline at end of file diff --git a/test/fixtures/lineplot/slope2.txt b/test/fixtures/lineplot/slope2.txt deleted file mode 100644 index f87230e..0000000 --- a/test/fixtures/lineplot/slope2.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2 │⠉⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⢇⠀⠀⠀⠀⢀⣀⠤⠒⠉│ foo -  │⠀⠀⠈⠒⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠘⣄⠤⠔⠊⠁⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⡜⠒⠉⢱⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠉⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠤⠒⠉⠁⢰⠁⠀⠀⠀⢇⠀⠀⠀⠀⠀⠀⠀│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠚⡖⠒⠒⠒⠒⠒⠒⣒⠶⠖⠚⠓⠒⠒⠒⠒⢒⠗⠒⠒⠒⠒⠚⡖⠒⠒⠒⠒⠒⠒│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⢀⡠⠔⠒⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⢀⣀⠤⠒⠙⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⣀⠤⠔⠊⠁⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠸⣀⣀⣀⠤⠴│ -  │⠔⠒⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⣀⣀⡠⠤⠤⠒⠒⠉⠉⢣⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⣀⣀⠤⠤⠔⠒⢲⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⠤⠤⠒⠒⠊⠹⡉⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀│ -  │⡠⠤⠤⠒⠒⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⢱⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀│ - -5 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣│ - └────────────────────────────────────────┘ - 1  5 \ No newline at end of file diff --git a/test/fixtures/lineplot/squeeze_annotations.txt b/test/fixtures/lineplot/squeeze_annotations.txt deleted file mode 100644 index 8d66744..0000000 --- a/test/fixtures/lineplot/squeeze_annotations.txt +++ /dev/null @@ -1,19 +0,0 @@ - Hellohow areyou? - ┌──────────┐ - 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼│ -  │⠀⠀⠀⠀⠀⠀⠀⢀⠜⢸│ -  │⠀⠀⠀⠀⡤⠤⢤⠮⢤⢸│ -  │⠀⠀⠀⠀⡇⢠⠊⠀⢸⢸│ -  │⠀⠀⠀⠀⣧⠃⠀⠀⢸⢸│ -  │⠀⡏⠉⡹⠁⠀⠀⠀⢸⢸│ -  │⠀⡇⡰⠁⠀⠀⠀⠀⢸⢸│ -  │⠀⡟⠀⠀⠀⠀⠀⠀⠸⠼│ -  │⡜⡇⠀⠀⠀⠀⠀⠀⠀⠀│ - 1 │⣀⡇⠀⠀⠀⠀⠀⠀⠀⠀│ - └──────────┘ - Hellohow areyou? \ No newline at end of file diff --git a/test/fixtures/lineplot/stairs_edgecase.txt b/test/fixtures/lineplot/stairs_edgecase.txt deleted file mode 100644 index 641301e..0000000 --- a/test/fixtures/lineplot/stairs_edgecase.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 7000 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ - 0 │⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣸│ - └────────────────────────────────────────┘ - 1  8 \ No newline at end of file diff --git a/test/fixtures/lineplot/stairs_parameters.txt b/test/fixtures/lineplot/stairs_parameters.txt deleted file mode 100644 index 4b6de45..0000000 --- a/test/fixtures/lineplot/stairs_parameters.txt +++ /dev/null @@ -1,20 +0,0 @@ - Foo - ┌────────────────────────────────────────┐ - 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⢸│ 1 -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⢸│ 2 -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⢸⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸⢸│ -  │⠀⠀⠀⠀⢰⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠚⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸⢸│ -  │⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡧⡄⠀⠀⠀⢸⢸│ -  │⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⣇⣀⣀⣀⣸⢸│ -  │⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⢸⢸⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ -  │⠒⠒⠒⠒⠚⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠧⠤⠤⠤⠤⠼│ -  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - 1 │⣀⣀⣀⣀⣀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 1  8 - x \ No newline at end of file diff --git a/test/fixtures/lineplot/stairs_parameters2.txt b/test/fixtures/lineplot/stairs_parameters2.txt deleted file mode 100644 index 4af9e69..0000000 --- a/test/fixtures/lineplot/stairs_parameters2.txt +++ /dev/null @@ -1,20 +0,0 @@ - Foo - ┌────────────────────────────────────────┐ - 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡏⠉⠉⠉⢹⢹│ 1 -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⢸⢸│ 2 -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⢸⢸│ 3 -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⡀⡇⠀⠀⠀⢸⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡇⠀⠀⠀⢸⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡇⠀⠀⠀⢸⢸│ -  │⠀⠀⠀⠀⢰⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠚⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡇⠀⠀⠀⢸⢸│ -  │⠀⠀⠀⠀⢸⢠⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡧⡇⠀⠀⠀⢸⢸│ -  │⠀⠀⠀⠀⢸⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⣇⣀⣀⣀⣸⢸│ -  │⠀⠀⠀⠀⢸⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ -  │⡏⠉⠉⠉⢹⢹⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ -  │⡗⠒⠒⠒⠚⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ -  │⡇⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠧⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠧⠤⠤⠤⠤⠼│ -  │⡇⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - 1 │⣇⣀⣀⣀⣀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 1  8 - x \ No newline at end of file diff --git a/test/fixtures/lineplot/stairs_parameters2_nocolor.txt b/test/fixtures/lineplot/stairs_parameters2_nocolor.txt deleted file mode 100644 index 674c89b..0000000 --- a/test/fixtures/lineplot/stairs_parameters2_nocolor.txt +++ /dev/null @@ -1,20 +0,0 @@ - Foo - ┌────────────────────────────────────────┐ - 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡏⠉⠉⠉⢹⢹│ 1 - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⢸⢸│ 2 - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⢸⢸│ 3 - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⡀⡇⠀⠀⠀⢸⢸│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡇⠀⠀⠀⢸⢸│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡇⠀⠀⠀⢸⢸│ - │⠀⠀⠀⠀⢰⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠚⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡇⠀⠀⠀⢸⢸│ - │⠀⠀⠀⠀⢸⢠⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡧⡇⠀⠀⠀⢸⢸│ - │⠀⠀⠀⠀⢸⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⣇⣀⣀⣀⣸⢸│ - │⠀⠀⠀⠀⢸⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ - │⡏⠉⠉⠉⢹⢹⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ - │⡗⠒⠒⠒⠚⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ - │⡇⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠧⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠧⠤⠤⠤⠤⠼│ - │⡇⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - 1 │⣇⣀⣀⣀⣀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 1 8 - x \ No newline at end of file diff --git a/test/fixtures/lineplot/stairs_post.txt b/test/fixtures/lineplot/stairs_post.txt deleted file mode 100644 index 0f0bc6b..0000000 --- a/test/fixtures/lineplot/stairs_post.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡄⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⢸⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ -  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠧⠤⠤⠤⠤⠼│ -  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - 1 │⣀⣀⣀⣀⣀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 1  8 \ No newline at end of file diff --git a/test/fixtures/lineplot/stairs_pre.txt b/test/fixtures/lineplot/stairs_pre.txt deleted file mode 100644 index 6e72d92..0000000 --- a/test/fixtures/lineplot/stairs_pre.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡏⠉⠉⠉⠉⠉│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⢠⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│ -  │⡏⠉⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│ -  │⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│ -  │⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠧⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠇⠀⠀⠀⠀⠀│ -  │⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - 1 │⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 1  8 \ No newline at end of file diff --git a/test/fixtures/lineplot/y_only.txt b/test/fixtures/lineplot/y_only.txt deleted file mode 100644 index e2538b6..0000000 --- a/test/fixtures/lineplot/y_only.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2 │⠉⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⢇⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠈⠒⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⢱⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠉⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⢇⠀⠀⠀⠀⠀⠀⠀│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠚⡖⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⢒⠗⠒⠒⠒⠒⠚⡖⠒⠒⠒⠒⠒⠒│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢱⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀│ - -5 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣│ - └────────────────────────────────────────┘ - 1  5 \ No newline at end of file diff --git a/test/fixtures/randn.txt b/test/fixtures/randn.txt deleted file mode 100644 index 7f0d19f..0000000 --- a/test/fixtures/randn.txt +++ /dev/null @@ -1,10000 +0,0 @@ --0.32958197469857736 -0.8128121129837046 -1.882083723025754 -0.963959953730384 -1.8461074556435184 -0.2700047175492735 --0.06804974230768497 --0.8189866759490652 --0.9673505123501639 -0.2938508669734399 -0.19815530196196957 --0.000871823096202101 --0.49156359282476364 -0.5347333539390782 --1.7525072345713935 --0.7260903289044955 -0.7378700824461942 -1.9767215038950663 --1.0305954847791625 -0.3899554846717337 --0.7356121921815371 --0.7288575845703916 -0.9671711271532987 --1.0907077340929099 -0.9266611111138336 --0.6385551673162309 --0.9318540316208712 -2.161874182920445 --0.07589591610624044 -3.1160655000950923 -2.7879236675148187 -2.26355826725101 --0.5557203715190229 --0.617472474841585 --0.2842254139692148 -0.9920490764649508 -0.8931609245556241 --0.5468865394270588 --0.8206289326766747 --0.04416965527494406 -0.9377187977595242 --1.7652385598290785 -1.0465202481757576 -0.6891695741281211 -0.8760198942716435 -0.06642148300004219 -1.3425092404733574 -0.2531183153700703 --0.9530210972831613 -1.4424122140606719 -0.3941817986980491 -0.27687624688929324 -0.9239734256193073 -2.7498516500667667 --0.8590655061299015 -1.8135218926509644 -0.6151839221773048 --0.9297629357480012 --1.627090409366283 -0.1173678036589521 --0.5763733351690885 --0.5147405019501218 --1.3020933099964442 -0.7433593579707246 -0.9902805793826872 --0.942541022603409 --0.27612807399190464 -0.9082831682187507 -1.3162762854502965 -1.6273089810181478 --0.24437388473081967 --0.6964106841150811 --0.1773154134264461 --0.5177795418512539 -1.2012073884649712 --0.3902043258710514 --0.2833476563183354 --0.7744130228333072 --1.5768200860378236 --0.21462514005677036 -0.9754348623968342 --1.3443838441840263 --0.14843795951748168 --0.9664857712824052 -0.7206200324699356 --1.576998885053687 --0.45927646606449946 --1.3226593841543084 --1.8330620115962393 -1.0274002794715253 -1.90550463063769 -0.003746680353577447 --1.3193505011162825 -1.7698738567702745 --0.11428565710164702 --0.8450355502139248 -0.36050254006982907 -1.3628550911650017 -0.12221678666676251 -1.9898882659065158 --0.8701288618842657 -0.8149134730579659 --0.06378270164472492 --0.09306293876197429 -0.8737029200953192 -1.1564546581470971 --1.4064750778111033 -1.8333879884306588 --0.08505594527643315 --0.0675195973438915 -0.5970591753384297 -1.1361785558660076 --1.7456728710917557 --0.36162898887641237 -1.124862333076972 --0.30859487957195597 -0.5281209632509506 -0.14832099032070342 -0.5018206598282577 --0.21987953963074552 -0.6914666064276535 --1.870142986227056 --1.0157831611387402 --0.979497853944363 -0.6557722044335158 --0.031284966437444134 --0.9193083606206252 --1.9595569127168393 --1.0020962406512604 -0.9450459213927636 --0.6690047577222856 --0.15689273112246271 -0.16787467977733123 -0.46801303768172114 -0.29095164676274027 --0.19216638385857437 -0.980302074969812 -0.21144574690428813 -0.36893277043265243 -0.5965560426395776 -0.6032712273015585 -0.020771524682010028 -1.339096622045867 -0.08519303813578774 --2.3871444015264864 -1.7190156078823826 --1.3471539281724172 --0.004643746446662698 --0.3926468664522464 --1.5662734365171116 --1.3069981899957455 -1.6869961949059242 --0.20317049377091384 -1.3828877833033668 -1.4989784254213452 -0.761979495583769 -0.7048679544522799 -1.0077611116448384 --0.5889190583913357 -2.4661202481840205 -0.5986179651222487 -0.009414181922620168 --1.5058307322996942 --0.2946266634717495 -0.27465860115270474 --0.8548140070060688 -1.2518845546568946 -0.8015559987005222 -0.8189490669028812 --1.8216353081082695 --0.42349739081780147 --1.088527956191091 --0.5126950138657371 -0.07042391987050482 --0.3661220257864967 -1.002133016813666 --2.2144515837611225 --0.9335460401266351 -0.1415562338178595 -0.7616093056224419 --0.8922708051046021 --0.5894851115265487 -0.9682252471215467 --0.6848931202924592 --1.2134334334862809 --1.4267378004565343 -0.5442108760521868 --1.4091598756617965 --0.9033145481659495 --2.4318526713844193 -0.4922591340417251 --0.9695855682907829 -0.21693035455635526 --1.7923922660742768 -0.9622603834738889 --0.5931346059220476 --0.16785119764667936 -0.3615546946846785 -0.6329930507699564 --1.3519792530770611 -1.0279226355086586 --1.5053211162971238 -0.2629168915232593 --0.470881623197536 -0.42300044934101333 -0.12004693780213267 --0.1570855319782282 -1.067060122083555 --0.14560852177111047 -0.10315685675878943 -0.5542421373875248 --0.6294028826550176 -0.41483418281326057 -0.4856085309733672 --0.29460112231210167 --0.823999093651093 -1.370066472686124 -0.4363228243414403 --0.22079624682442422 -0.03873612161476014 --1.5586174114749702 --1.7314063818347358 -0.28964854760750647 -1.60266255754474 --1.102284635734507 -0.47116335878578575 -0.6741969250992617 --0.07885458484557162 -0.5214212524842011 --1.0398382625818263 -1.296813549519156 --1.1883445598228752 -0.09327994144535777 --1.6573051161789454 -1.9660339057828213 -1.4337817107610076 -0.3669600106996607 --0.6171489263296163 -1.4253082417960696 --0.5621003267772297 --0.9681697530870442 -0.3838554920617521 -0.8813503310819182 -0.6604427774014484 --1.4278444569649356 --1.5255029970616951 --0.7942839958863257 -0.4473839389177399 -0.320263924655464 --0.011287576088784968 --0.6052130411882358 -0.6489686374798758 --2.8539188616174838 --0.6366142372429002 --0.3157275260591758 -0.1866943102479212 -0.3752426148503715 --0.9719102139972665 --0.28253134296862625 --0.23891383022937496 --0.6184094783170482 --0.8730354094311935 -2.488796887426788 --1.5244806282364887 -0.03941613877509612 -0.3511617632106059 --0.3029694581931178 --0.9274048401401789 -0.3560113358022669 -2.9103036895169194 --1.8802835069359252 -1.1349017966347152 --0.9025865472858764 --0.7702308318810408 --0.40626465740720513 -0.50811657284057 --0.14002838109494736 -0.08860179054073454 -1.1229272992954595 -0.3268306858114956 --1.3844480784637263 --0.8656480812744923 -0.32871946860287615 -0.5595312942074099 --0.8041858765403734 --1.125178268006114 -1.068511642374501 -1.0470535669888392 --0.6105609809788747 --1.3787013270154007 --1.284304051352855 -1.451146842625856 --2.7216972502537153 -0.011822617772265337 --1.759275361685576 -1.3646786033958112 --0.3088473041034588 --1.7330819651720524 --0.24603032451141785 -0.26670265142911787 -1.1720038462403877 --0.03385245118180287 -0.30374737401574853 --0.37769195464462096 --0.758172791456292 --0.6886532962259578 -0.5636070897701914 -0.49031056282222035 --0.9715924713762203 -0.4346902070816044 --0.9195840565269737 -1.4240895324624787 -1.1880523102082008 -2.452056068777715 --0.6103574152980635 --1.5740287010602385 --0.05516379502794191 -0.18459696918948687 --0.14690968129315712 -1.4659140128858297 --0.3938281251385717 -1.5834342612651224 --0.8167820926897286 --1.637165329278822 -0.007960020932381094 -2.070133997043403 --1.045042014987435 -0.7720109071570125 --2.0299532101922413 -1.4735381051118903 --0.9283138362367536 -1.4963274266322342 -0.4944305495652648 --0.624612262687315 --1.0248827274148378 --0.9125617191877293 --0.1252419926383769 -1.2805911277845816 -0.6107679542665814 --0.7991015764425181 -0.3416974094659201 --1.2257866402866728 --0.947524994489344 --0.22696566068928842 --1.2142983779019347 --0.10456575437416629 -0.9169680700826417 --2.2463255321272295 --0.03842791528829802 -0.11673698606458334 --1.5399627770200903 --0.2261923690825431 -1.4320736029186896 --0.7621083634061341 -1.6712845573485886 --1.5773460878218386 --1.593457662562918 -0.6237077018243609 --1.3016349886955692 -0.4433576909799073 --2.6858620631421135 -0.2057869634529583 --0.8545015924653859 -0.11472414404812326 --0.49971102409923474 -0.0380805921612285 --0.5864240433039548 -0.15586169206325623 -0.304462430954555 -0.040419052058405104 --0.9095684415609917 --0.0793577362532359 -0.17347375139526192 -0.07631060546683095 -2.208244456765864 -0.6516665274625392 --0.2780403765720671 -0.13716079029997003 --1.3958281258063021 -0.3477888793206827 --0.4286325923455476 --0.8248991527047314 -0.37291252866548474 -0.6154053409886596 -1.1893632044972329 --0.7683468471092588 --1.6318990460914862 -1.248310321162491 --1.0650787705153677 --0.555204373924665 -1.0463521163527314 --1.200272972495076 -0.24704616275121377 -1.1850329151542596 -2.1658399908488573 -1.3472242127316467 --0.033783260905189745 -0.5561217912581424 -0.04253321897428419 -0.21682981259151793 --0.15205366543304008 --0.6325311174091508 --0.36718760063072653 -0.05749570241718472 -2.789997046062812 -1.0380753805674623 --1.591308398464277 -0.7628700930631438 --0.588068247386886 --2.820855729676129 --2.6692357008842387 --1.6674530733543418 --0.09706193918390814 -1.397239356164116 --1.6369938325203173 --0.6940374254489567 -1.1570692366148296 --0.9816647089692897 --1.5154831594782376 -0.054470916431870894 --0.5029936674905577 --0.32762383849493787 --0.7201897334957713 --1.0993489879140594 --0.21681040124109566 --0.7939914333421663 --0.3294415807236402 -1.5884301259382438 -0.6716885534506725 --0.33702279337728086 --0.0382599081123082 -1.9344857634035098 -1.9345481654363619 --0.1310040862405379 -0.16787189639629363 --1.001370494646698 -0.27810352382967113 -0.5439282686969186 -0.3868621993700854 -0.7863017218402539 -0.6173354989886817 -0.4380935781832969 --0.5138462719036724 --0.5706571415247318 --0.12147298564785085 -0.11941556813140271 -1.058588071766513 -1.2404084282235994 -1.130251137302626 -0.980333705876761 --0.2861803342704093 --0.07994867372060242 -0.46017035142429846 -0.09114524000177615 -1.5278459443492534 -0.6491308408136665 -0.49402081691648947 -0.6491596149382135 -0.16925172890040788 -0.5629473263020446 -0.464272962024219 -0.1556346338715981 --1.4024561956435806 -0.8682810717255821 --1.0851596245815407 -0.21889269709672443 --0.2825657350972203 --0.7479464548579478 --1.1120690654359475 --0.835540003086761 --0.14600685205848007 --1.0908131694767977 -1.6745006850127684 --0.6666822484641846 --2.145883938217028 --1.7690987409707173 -0.502782635324094 --0.899688661029183 -0.6622772301528382 -1.2961176595225468 -1.1100600829400045 -0.015229725616471429 -1.1844672815635635 --0.5309223073295825 -0.9245862476168457 --1.3736380252519929 -0.7260385893474861 --0.7497959436454157 -2.3041791647923295 --0.5472379594434451 -0.7838677493626376 --0.5068949201536501 --0.5455615507263241 -0.021519631324367315 -0.8067039134845586 --0.6156781787056655 -0.4126791539234907 -0.7163526644883453 -0.0725188586853284 --0.3248959099462798 -1.3359813792422395 -0.4603047328022688 -0.521919514703434 -0.03469993657950483 --0.7974138249057162 -1.358579798181889 -0.9628854710815195 --0.9527479508883183 -0.5369140206391212 -1.6626678928345784 -0.06676220851337958 -1.438869796101619 --0.1760864365813048 -1.7700446478318783 --0.37837193910486505 -1.621209021406893 --2.2131500212170896 --0.20986840983599103 --0.09007511355053967 -0.30608243905186583 --0.9955893720981372 --0.4109070040158595 -0.19876407449882427 --0.7399294000920826 -0.6313974406322999 --0.28503286099984587 --0.2550464026218081 -0.32205147728341504 -1.005275611395626 --1.3772291677456097 --0.0076232913717998166 --0.6651907164043983 -1.337968960037573 --0.3192453527813096 --0.4893632462940543 --0.12897630236427135 --0.5511636523297575 --0.8108939832923645 --1.0936230669693086 -1.076245181591592 -1.6755917523034711 --0.3775714258912794 --0.2338963965814388 --0.2413801418372196 --0.01851307294001971 --1.651168914411338 -0.4129950211659015 -0.6207883803620332 -0.5582867959615498 -0.035597320339898965 -0.7309375932341191 -0.14335676053556184 -0.4497006580179528 -0.9303833230099834 --0.5351174806875642 -0.39443193689972683 -1.3880680430230077 -0.5525813986970917 --1.3860294915597247 -0.42279736307966653 --0.7274912194476237 --0.5017738037584105 --0.04301327609089018 --0.021853896658508648 --1.7077204811678934 -1.548207037706149 --0.3068308691384729 -0.11762103210095448 -1.0185711730277172 -0.715964771363517 --1.1144495770024607 -0.8948999274274944 -0.011399678614671997 --0.1332725015729161 -0.23591775303228874 -0.5203910679339668 --0.8335753513353105 --1.4572627805585534 -0.1190608178566256 --0.5112365208601987 -0.3021404235525879 --0.035231024189298736 --0.057721140242626305 -0.23787992786444753 -0.7882195214793865 --1.4345557396748616 --1.0062125572788676 -1.371386991899302 --1.3774364270188146 -1.7593514807135073 --1.4533599346863884 -0.2994766331893205 -2.0552448571127346 -0.7037008447235763 --0.22418612851637387 -0.8928912015403667 --1.8785539646457292 -0.17218940714708533 -0.09833520124565646 -0.5155272173350726 --0.26162261820937016 -0.7617509573906943 --2.5245570340945194 --1.7407484492088279 -0.8902926924538034 --0.9192006636137308 -0.013255738441205983 -1.739118500005486 -0.7863466224562626 --0.9217300911601196 --1.257222214670498 -0.007021864808244587 --0.22886176845943954 -1.290070628973781 --0.4728652746311679 --1.200612169365028 -1.8863092759766813 -1.8982337392688018 -0.03377851492115784 -0.04130626755113937 -1.0205449401163833 -0.1921391603406368 --0.6687663599963798 -0.8777805318507446 -1.7693823151922938 -1.0783003625035672 -1.2240510212717055 --1.3278964811534686 -1.0173889243633099 --0.0182822350581672 -0.7595627976008456 --0.32545205082232775 --0.5154132413244559 --0.9522396684492687 -0.8904136312278014 --1.5038018477919168 -1.535765564339124 --0.9345834994828343 --1.6938149848212303 -1.589129331923448 --0.0992009791424803 --0.8382785822967203 -1.0542386845813214 -0.8509808969651633 -0.6781065671238856 --0.49738683120025645 -0.25962996395811117 -1.3905482922326429 -0.6814834706715238 --1.204799035130833 --1.075974906314338 --0.052776701747546485 -0.3544527276276295 --1.1325176325561475 -1.954357913968124 --1.7768680483903985 --0.7511820624162191 --1.0038486728087956 -0.44629512738326726 -1.1655165958913334 -1.1069943346858557 -0.6438362948511489 -1.0453927805724585 -0.8665290932483742 -2.3512700398568147 --1.2052487097961424 -1.4892819062183098 -1.0662502700002334 --0.950177642462849 -2.1508738857029694 --0.13801376812261185 -0.3109629503543516 -0.7491545013649822 -0.17941706598244156 -0.18987480697885148 -0.1699923902654096 --0.3091031712892954 --0.5539150684516407 --0.7824364784973844 --0.3955765112052595 --1.4950095029402395 -1.1873445502416402 -0.6614541435828412 -1.1422353023284688 -0.061031088438197226 -0.14028971536643547 -0.12897369472555617 -1.0012322745305378 --1.4946465747879194 --0.9054533743979054 --0.2528499100211752 -0.20199537528271222 --0.7971359715607801 -0.8336223462549058 -1.217922505040179 -0.8619969894269881 --1.2826367221673203 -0.011659054189482997 --0.662997997361743 --0.3281401988774899 -0.016431903419055642 -0.5282812047609764 --0.3183832575038601 -1.624212008577875 -1.1481496014999522 --0.9000750873673087 --1.0996858484887313 -0.26565620151510533 -0.3107701367025766 -0.5698413788880468 --0.26100570811075263 --0.8323282045424952 --0.4470385587209874 -2.568461413977132 --0.7762847918700219 -1.6968745428637744 -1.437835323729707 -0.2588157741313224 -0.2342622518009991 -0.26558595835969423 -0.587054008233613 --1.3376051243097338 --2.080503702162021 --0.44467491703834483 -0.4720392443153715 -0.8217394348854585 --0.5881219826828615 -0.4377546852720092 -0.3192780209485345 -0.5209037591392349 --0.3111334290139374 -2.0960772700996326 --0.07904974441614655 --1.7275557030932807 -2.400005074139819 --2.191034439585347 -1.2519909921427046 --0.9635818305487779 --0.11156800388947889 -0.44516827660845293 --1.6174569800887277 --0.474639642786223 -0.5696886318948239 -0.891566682767979 --0.5055409593229744 --0.30089081752467045 -0.7541188419625616 -0.8401514033669678 -0.677546727610416 -0.4499002663591542 -0.8427116166915536 -1.1604497080620069 -0.21970897216686944 --0.5360439027711745 -0.3960094110149803 -1.0445775772074923 --0.32178436472724803 --0.7304266715508754 --0.9128072625813427 -0.45992573193971154 -1.2985097895785187 --0.5684687830868882 --0.616270211324102 --0.7886376838403263 --0.1773050627076827 --1.0070770452463826 --1.2012148380550347 --0.7487531918013008 --0.4664519207282203 --0.6600947179071484 --0.9773629370610039 --0.14074012279358702 --1.7618431696049872 -0.4936732953468293 --0.15848671942576775 -0.9559822687733891 --0.8384298951994736 -0.8971636949972518 --0.25795739850129384 -0.6543869385051545 -0.2600443332118357 -0.3866216710397944 -0.3117385255747246 -0.11822501370815071 --0.32974208379755904 --0.6410070551627444 -0.6885771627695548 -0.006391377392919234 --0.7356514962327598 --0.4124509093379167 --1.5273399837610926 --2.3824807933768706 --0.38608320202644403 --1.1515643681116106 --0.19054329959851807 --0.05942456351658159 --0.9129429910500604 -2.0066831882172464 --0.8581834174940751 --0.6665630268066598 -1.4984098028545694 --0.7183063803920108 -0.9570649301640723 --1.25312924635214 --0.2652781841637899 -0.23101744009637598 --2.4083815897082124 --1.118458119374559 --1.5841742187034806 -1.478609044446996 -0.6028748505552456 -0.506141764699625 --1.0131804919185796 --0.6687864800619533 --0.8296665844065447 --0.2944657058826134 -2.0730554766965548 --0.7480641890504218 -0.35844763661895784 --1.4362658100738968 --0.04754551238179313 -1.5876835764430435 --1.558506311496397 --1.9336710984436492 -0.12204774010935888 -0.08650340048181684 --0.1926113571709459 -0.14770028807844615 --0.32187830119328986 -0.9082847337423534 -1.9051099341284046 --0.27883506946046144 -1.2006623723630283 -0.2516355814190494 -1.0744853691740375 --0.5404597804964556 --0.7886336237446122 --0.5964754634164875 --0.13554192557108222 --2.876723610574472 -0.022147974210929098 --0.6140443831454568 --0.418050130137283 -0.6129311026590231 -0.7271978263281931 --0.3675484717571325 -1.309293249436624 -0.7851696246019381 -1.6373354892270857 -0.579435804509257 --0.6307978582866517 -0.30176653550369364 --0.6354933262554842 -0.25605602086203993 --0.4385790650088691 -0.3471199439072785 --1.2315474096770143 --1.6803859736434903 -0.08127191927095657 --1.153681752248215 -0.14911559919778075 --1.267209691923122 --0.42283939262921016 --1.4669507919137619 -0.9542242483017718 -0.6492793230826917 --0.07000266356122489 --0.11607289267359179 --0.0014933111305823492 -0.742972256647947 --1.9618428037659688 --0.7105189079822408 --0.6033986171334276 -1.0994074160025131 --0.8832642336582034 --0.6818280401826592 --0.12126492480964426 -0.36375083438639927 -0.1462543547653334 --0.05054889881372554 -1.95898591355215 -1.0047142661609252 -1.0791750958833992 -0.2368993565722079 --0.9150990426743979 --2.6132681786866554 --1.0147159774693904 -1.3012981876731742 --0.607176134048015 --0.09432905609312957 --0.2767821389098231 --1.3137990854373496 -1.0677775534639873 --0.9283005051514576 --0.5888533719953291 --1.5182568988838965 -1.0337746485849084 -0.8161815530338938 -1.074964057046784 --0.354389020924579 -1.0687668952058778 -0.8819823942631538 --0.4682666398967946 -0.3551775366627682 --0.8322016132262285 -0.6904476099985078 --0.870375678021327 --0.3720333979885702 -1.6324785402480357 --0.6432961778773372 --0.46206468059508554 --1.782508762159461 -0.4124063890986668 --1.2034359057996202 -0.9583351287690494 --0.6675427887744637 --0.7103347470882126 --0.7682099262293159 --1.00879108684103 --0.26992910400166176 --1.2066431712813601 --0.9333431644594227 -1.9248700031825001 -1.8032929916521092 --1.5117335518077946 --1.2695512373433429 -0.9346055671604709 --0.10233907588679617 --0.8255581330807257 -0.9421366033784128 --1.7388554175430393 --0.6229109172330338 -0.1916235906259595 -0.09297649393892672 --0.46188045725262744 -0.7682740206378594 -0.06329295327789293 -0.3831982997073332 --1.4490175597746133 --1.2292482914465541 --0.3833971442610111 -0.3465678008306466 -1.676551392815693 -0.6296870293155702 -0.5095928691531655 -0.22844046499852166 -2.171904520066982 --2.068737162510952 --0.8330209145909028 --1.9392315590022775 -0.21242307810362032 --0.2265976292221229 --1.1133611903373908 --0.3152808485772879 -0.11862820786011513 -1.5496781275044023 --0.957148080893249 --0.6520080326440197 -0.0950614357728738 -0.24173819707636374 -1.6968660345277353 --1.431169736431009 --0.6463571957383343 --0.501410958146058 --0.15349315054991783 -0.757053072963936 --0.36790982608028006 -1.6175703159540122 --1.1898417690342442 -0.8034708148029678 -1.2538351362389357 -0.36787770330368086 --0.34261348379802326 --1.1269300371328026 -0.3210425235414602 --1.3123844990136708 --1.1146620252603268 --0.012521610466233296 -0.13899986360799035 --0.5964283294736359 --0.9651923984112808 -0.2925661814223834 -0.49857721470338917 -0.2452855546609573 -2.3472446264697866 -0.17330207410897475 -0.3295203970812141 -0.6781117616180499 --2.0525452075417645 --0.1613180881768925 --0.9130886550526005 --1.8996773845368204 -0.6453411784878834 --2.128600590224177 --0.17898829599709642 -0.7965216895300027 -0.6033458912830386 --0.3016618522488306 --0.9409087429913946 -0.4522329618388907 --0.7483601643697748 --0.4090366470415442 -0.19003883214275505 -1.0660148307140502 -1.9250357967841774 --0.19708520588999032 --0.5850845229243966 --0.7579959463913529 -1.299022065608021 --0.11714709070752963 --0.404556376574676 -0.7885843669682414 --0.2331571567349096 --0.9714086456472363 -0.9031502368265821 --1.6046766671430344 --1.259685591035128 --0.07834426134911554 --1.9077564268300329 --0.5105225463216141 -0.06389758882078135 --1.341900962433327 --0.7258375931738211 --0.5905045887789446 --0.8814023075732647 -0.47744495527405284 --0.054860223704185807 --1.8600326739200628 --0.542119782711556 --0.35575078786948716 -0.9661830695996716 --0.19806007282162533 --0.12353355530163318 -1.4930004745990555 -1.2050319512534313 -1.075534742348922 --2.35469326454914 --0.7199722526795469 -0.7359156289500969 -0.6692931269325723 -1.6540332651312326 -1.721988608330747 -0.6817484661901935 --0.013665061314960054 -0.4224332353561548 -1.4149157521619011 -0.48774079960267724 -1.1318194813429265 -0.8075195420917873 -1.0641064017470807 --0.12080177391277398 -0.2568113027582725 --0.47876546502453304 -0.08729226798474829 --1.743382453540233 -0.5897351642196942 -0.11747692626184184 --1.001162126837045 --0.04484775016024897 -0.47804890796892746 -0.5914881943400374 --1.4286115814776417 -0.0964683434217256 --0.44797126002081955 --1.8768058211593992 -0.7920452864090322 --1.2486984440019258 --0.10157898783793921 -0.9672287877936157 -0.2829511646307377 -0.9017674311285576 -1.8819127869932932 --1.333168051841144 -0.14538051911849895 --0.7020684424002177 -1.6079407988748229 -0.641965769582499 --0.1878181355468425 --1.7865905359583834 --0.10723856627829535 --1.1369338818426875 -0.885191706224567 --0.21073894581368696 -0.7580491315097986 --1.114445416801123 -0.6045925147406884 -0.10375988589791796 -0.4510985963235906 -0.07160797512042517 -0.26558221008067634 --0.06550924500083885 -1.7713514502287147 -0.33689029141563703 --1.5019185658758674 --0.42373439872601437 -0.9830104064183316 --0.007484267227843857 --1.757326945012115 --0.29392184647840097 -0.5512785907686436 --0.8326783843234883 --2.1211750159277964 --1.6690066364803784 --1.838240059052518 --1.1065205540047647 -0.4437341279508079 -0.723681299083997 --0.5092466756740617 --0.4342765314895934 -0.0839730996050108 --0.46513647990734536 -0.11766557485242521 -0.35191827440193346 -0.32474770708127143 -0.34233307654078987 -1.5017526863572634 -1.000437642693801 -1.3659684887895596 -1.562344947297372 --1.515806236853533 --0.32801437659879523 -1.1846143081969709 -2.6789843899443055 -0.9397629320781282 -1.7159839978265536 --0.37032994228428323 --0.7094233877859414 --1.7597289908157028 -1.380114291229386 -0.41504093063173997 -1.6307251775342015 --1.2545413543159611 --0.057916656037331385 -1.7515791035002264 -0.44884211710164423 --0.1353921920239148 --0.7120964650513903 --2.412986446169171 -0.1411363441924442 -1.1588306010148914 -0.8299424555694722 --0.3048053528243344 -0.04303313787128824 --1.0300167093967565 --0.7577883705872038 -0.4642345593020752 --0.8973993114999381 --0.14547288224653468 --0.14868130774319627 --1.3648392519584718 --0.717262409868843 -1.066470668039768 -0.5447297784286192 -0.7644643395260584 --0.08871356250262905 --1.051786035953728 -1.312743807108908 -1.011905786546236 -1.0041696653048475 -0.28917125084856393 -1.367381598788248 --0.24561269479916784 -0.43455122474931995 --0.13208759564634753 -0.8186164662908275 -1.8930418282611334 --0.4257428862040142 --0.05792170867587638 -0.374819138641673 --3.155085597446688 --1.2521728333440458 --0.6433448885380431 --1.6676145980697576 --0.1142868967429222 -0.07446267258642433 -0.884908283050698 --1.2934489100817643 -1.8323537530557925 -0.9936763873679682 --1.1370691890745726 -0.8685503749097654 --1.5789637823537492 --0.20465054205757577 -0.38482175178528566 -1.9211198943915717 --0.7765971013485515 -0.5273472138324616 -1.0924868992548777 --0.18628128499168253 --2.3157648505092943 --0.3222904501225909 -0.9488623913933052 -0.9148150236576278 --1.5686299254280984 -1.3379817995325338 --0.05718042352125295 -0.21079910746549985 --0.18538140347222332 -1.2719316586443266 --0.5794476782059288 --0.30047880115681785 --0.6140508793131122 -0.8594826607648696 -0.9842343520961918 --0.6723751075365499 --2.0877405481431266 -0.4803155819179027 --0.40662424583933193 --2.0035499552543743 -0.0524767572207426 -0.8647446027010077 --0.04985707032177265 -0.40699658737332517 -0.084675464418368 --0.1295184703598614 -0.9301541187360467 -0.695812760509091 -1.0248975359579395 -1.2120246772429655 --0.2162595884382169 --1.7135570193418077 --0.19346640632896178 --0.5526895325298924 --1.1633771210879356 -2.625751971783503 -1.7676395450557072 -0.696649479647975 --0.4412648613298973 --1.430940628795412 -0.08076109754685563 -0.11469459202846714 --1.1705315447641143 -0.8088250945259099 --0.8029851756825153 --0.6529349804140077 -1.699333288302342 --0.11943912508800261 --1.5623979437033126 -0.6277793625972643 --0.3798877622050307 -0.09278187966201425 -0.4639143572027612 --1.6139458450993325 --0.9202360734187921 --1.7798623355521108 --0.60965897989371 --1.413264178257963 --0.36556879038851764 --0.49969110320054294 -0.9603665529486807 -0.10024588961831851 --0.5802899170912484 --0.567460228966216 --0.15728532276107035 --0.4793232727806253 -0.5788204335565871 --0.6083477186936898 --0.03696649612440514 -0.9231832824887881 --0.4917886953152328 -0.3018479423171496 --1.0711885100848064 --1.3885706134334366 --1.1861772639582886 --0.6702551467022597 -0.4950480646782051 --0.10284122685768185 --0.7584993482915793 -0.3712489700573576 --1.490636558706765 --0.3996568422966286 -1.4574710952193128 --0.1581015934038243 -0.3372713582478835 -0.014477388583110096 --0.11287339337845709 -0.08006540911021583 -0.4829650693207885 -1.0121190411948917 --0.6025442444161692 -0.15075935242622424 -0.8294610552202701 -0.7869556987653972 --0.5041656445686103 --0.12056192378103708 --1.1330787708558165 -0.45586197822129754 --0.10262048631760216 --0.06605731232817513 --0.2800029509894017 --0.4453685187609572 --1.2670312193615678 -0.35675992924377314 --1.0940241661115677 --0.1839990196677756 --0.20946473745409158 --1.2759480764311475 --0.13211116714127633 --1.4853067822465094 -0.599609116144186 --0.6594973118951553 -1.630376244476257 --0.4010119363127715 --0.6168997194483258 --0.12783861882046102 --0.4480041629929455 --2.2082729004391517 --0.46272481798312604 -0.5049950597363825 --0.12799689676294862 --0.570344136431873 --0.3445407853444188 -0.5254925942844273 -0.13709101252887665 --1.042019640978427 -0.29148197967728534 -1.5132665414912232 --0.679018111802317 --0.4083665559787234 --0.6054338085364424 -0.6907832251779001 --0.10765447797209982 --0.027021006791679337 -0.6919340866069301 --0.41119120007474974 --1.766422851930612 --0.9201377467371994 -0.9044389322975322 -0.9684095190423264 -0.3052011087076488 --0.8044429414514739 --1.646723278232529 --0.28055465769286947 -2.006960322043979 -1.3145011369153476 --0.027845247055017206 -1.0953263805877933 --0.22553890305789903 -0.12427653395906467 -1.42201483508518 -0.5064903813930868 -0.20380886739259615 --0.6050354517669275 --1.6318314608562463 -0.4199861683348598 -0.19712713906166446 -1.3445012121181406 -0.3627021377811413 -1.9099937185871332 --0.8881279932122322 --1.299782343442908 -0.3289419431524063 --0.685013704569975 --0.13550350001771255 --0.3067398858261538 -0.5060876110922032 --0.7399721891079766 --0.6280071634129452 --0.2603507292608495 --2.2715043855760846 -0.31721606828385307 --0.1597782362986555 -0.9286101012373367 --0.40953925398081076 --1.1548941603056044 -1.4709476616329913 --1.0460849031926336 -0.7523105640425803 --0.9513977002842123 --0.04401891829458821 -0.15691798600129706 -0.45753532146638487 -0.7821594962768761 --2.1507637286903853 -1.8500532461882144 -0.5276282151762534 -1.149229894601833 --0.17549292704607652 -2.304553675290181 --0.5117970152216906 -2.787819734912947 --0.713669028352241 --1.4106796146710707 -0.6968542476374148 --0.11906070942448731 --0.31450767442458744 -0.08619162917085824 --0.3872434550803131 --0.18648221478732863 -0.9872557439324624 -0.4471290169565924 -0.09495054932956554 --2.15385024805104 -1.9467458894063838 --1.4561031270421763 -1.2966095846351733 -0.5221674711065785 --0.17457785038553056 --0.31806575966269063 -1.3627065439680313 --0.49704007589898624 -1.2465151760615847 -1.044370660512965 -0.02354158280552501 -0.05763266091466652 --1.6004453798728993 --0.4922803732253537 --0.3312597423109524 -0.6836899225965855 -1.745483536876746 --0.5981988251188728 -1.7965230135132417 -0.7215337265224874 -1.1478270057873654 -0.23124726392608438 --0.45494742216213935 -0.7570428109083875 -0.5485876094894768 --0.36837913380393694 -1.0296438829319516 --0.0687965255836636 -1.1902258575646008 -0.2961344494386816 -0.47316386629997087 -0.4412362898144813 -0.4248444855204064 --0.08906599634921755 -0.16229036662710764 -0.28398502313633456 -0.7818897604240911 -0.7953188797051667 -0.9573975460287613 -0.6498014414640281 -0.8263015204225647 --1.4706315496794204 --0.15313388627953284 -0.6454552754602644 -0.882861718121782 --0.455694073964648 --1.2168531615661868 --0.8072565032559879 -1.8189612824267896 -1.2425430927919572 --1.6620437288475594 -0.0038862163329482532 --0.47157356854098204 --0.29137017289564643 -0.6603306736193153 -0.926498529393775 --2.858335825137968 -0.649948640091117 -2.993180701412846 --1.0910092233003752 --0.0902523659501523 -0.5991731165452275 -0.20091279436391316 -0.06092124963509707 --1.1826116368014297 --0.4051768874432033 -0.6420379071090496 --0.002558927033267477 -0.6684858172825826 -0.7859598475028157 -0.23404133994068163 -0.507218135055854 -0.6245381216461277 --0.3089980949477434 --0.30110168013395827 --1.4928475842900157 -1.6710559697271659 -0.6041669805025718 --0.15689272270949006 -0.6035518080557389 -1.2937989311108469 -0.06806019769325683 -1.372899674993254 -0.9105664023435308 -0.12674070395532913 -0.6940398100351898 -1.7323923404687551 --0.2251550307894643 -1.079450773512773 --0.5263374505102358 --0.44711277041060643 -0.15973999506681982 -2.0871364860743475 --2.7289902354349826 -1.0556055340511878 -0.14083956376201795 -0.9576392248920215 -0.4035397780402004 -1.7248318472423705 --0.6727931469588811 -1.3445867074275497 -0.5106210966139146 -0.37197753323553323 --1.5864560387241597 --0.36244339913051554 -0.050593931601081304 --0.5747293831776705 --0.35428314667711625 -0.5704246971297584 -0.976237404632053 -0.416501202636605 --0.6812130332728126 -0.6914064503017348 --2.5271853719007207 -0.1022803404328067 -0.9175267609484233 --1.6436661077509984 --0.979388867804399 --0.09606976685655697 --0.9280380502772919 --0.27851341979426725 -1.072161553914477 --0.2723290737966002 -1.7135301979043922 -0.4332476398052986 --2.397312705292067 --0.5176639892894085 -0.026885881224157707 -0.33143130726323394 -1.5968860997636916 -0.3097811993054917 -0.1800063440577808 --0.6817975850462993 --1.9286973642424228 -0.1399279343845218 -0.20752318979482087 -1.1452211470042328 -0.8914632356617125 -3.520238619984895 --0.8758535297092456 -0.7584947193181664 -0.8151781844786019 -0.5794245833297443 --2.190869416925596 --0.4950499084634013 -0.6108640761577807 -1.0779441009843782 -0.502764291302133 -1.5848896505052998 --0.8674534031023236 --0.3243916487458496 --0.6379531975847382 --1.9064959673260131 --1.4724072778581139 -2.756974209356501 -2.093905115782284 --0.12657090282731467 -0.5096242639080013 -1.9373840000843925 -0.007098817032679181 -0.7875031794253587 --0.1726367746571716 -0.7049235761640585 -0.1526220006326266 -0.872458090159555 -0.23263443987943105 --0.6415755359037408 -1.3148283562600238 --0.12313666960236692 --0.5332490082828505 --0.2832210404849663 -1.0261867360749732 -0.8010849002462387 --0.4851456726160356 -1.7663109381130075 --0.08626407136813025 --0.05458670346695095 --1.7548241219724916 --0.43158421061348823 -0.1055785411324819 --0.05403887644944113 -0.06447956561091862 --0.05373741783086421 --1.5122239504976602 --0.23377203005157152 --0.419672701959839 -1.4450456467056914 -0.518685391605083 -0.9524459663494549 --0.4891341822221255 -0.2606837779717817 --0.46560914487279736 -0.2391537387805954 -0.5280918003676258 --1.4136586914887368 -0.7836798469421747 -0.3299748964173304 -0.6422537939374053 --0.19546189120140142 -1.1421890101293384 --0.24211561290205932 --0.3870579109164699 -0.4314075984169654 -0.9490310964782057 -0.3624897984902037 --0.08723161560108608 -0.7984606412972916 -0.7537548152564797 -0.7245212189806695 --0.33968250015866097 --0.6709526781660319 --0.07712369314730755 -1.0856122365833407 --1.0049698505963562 --0.27556419761598694 -0.07432870438964041 -0.8083076530331703 -2.5027309618506974 -0.7714064534767998 --0.8714477028859198 --0.7336666467830038 -0.8302895693177333 --0.15814594913895003 -0.15021651547950188 --1.4884710497768863 --0.2098072967731942 -1.6030755914611239 -0.8468028889335182 -0.1439474805564019 -0.9062087778929814 --0.6415170384122211 -0.2813218079703694 --0.21363790882929684 -0.7504327587224638 -1.4853405830158477 --1.5730275245243852 -0.8773419042301972 --0.46855167468262054 --0.24406847615533117 --2.0981026147856836 --0.42446449869551117 -0.36745990551330804 --0.676547121992536 -0.8141992392032767 -0.20291958288250866 --1.3082366998149182 --1.4085338667945624 --1.4928527774752518 --0.9577058191403793 -0.5504357542855457 --0.4649854890181935 --1.576446063800135 --2.106988404833029 -0.4824521698465817 --0.7640700117470625 --0.05173983352246016 --0.7955602170082379 -2.139692443564115 -0.8944332939471086 -0.8687687230699743 -0.8119818978879118 -0.05088165417845441 -0.11131258712993859 --2.33420986510564 --0.13025974695075343 --0.35984579727087174 -1.2713032850301818 --1.3477347724517774 -0.6297929098648167 --0.8346374599593969 --1.6805847260096691 -0.6029588491698361 --0.8180874230501578 -1.0111309110318665 --1.0970965819721556 --1.2937505445745527 -0.3875961616741055 -0.6368283840528249 -1.420475702395006 -0.9348638460997942 --2.537573527309586 --0.4636454617742705 --0.7043972713574113 --0.6069083551309984 -0.9677607542885165 -0.5371138475128159 -0.4316313979381986 -0.6576102371413568 --0.5245968513982741 -0.798100094911391 -0.5833013683113075 -0.7379325141531087 -0.6445560274701264 --0.9949766788501028 --0.32686333885256147 -0.400811557101286 --0.7201416018434624 --1.6102437446087414 -1.0820159361827764 --1.062581460478199 -0.4606034889179738 -0.4386394570794345 --0.28870877352337265 --0.19064625459987902 --1.9170318873801544 --0.9123216259229917 --0.2895442017045661 -0.15198239978997216 --2.5277678557911964 -0.3436839513502134 -0.8107497973362918 -0.2808871247345828 -0.013575711004083018 -0.16095115180057099 --0.26809011801792587 --1.299221609923447 -0.26533776337160964 --0.2728778644190033 --0.27036394397602703 -1.509368965797395 --1.6298422860546073 -0.9821264026724027 --0.7317415914042009 --1.3018385483219532 --0.9081903400195942 -0.7032520333739577 --0.8471990688159068 -0.5311861082419157 -1.0018078224786398 -1.421861290949893 -1.0098735723992822 -1.3904112675874543 -0.5223444118812878 -0.43115478329186524 -1.3379703466311446 -1.3499049551733906 -0.5964411885659513 --0.9644571125298884 -0.33964512148470394 -1.0394996881516738 --0.7094864432466457 --0.8789244922409112 --0.002525384598246313 --1.228677204023953 -1.2982191661323284 --0.3576056689668824 -1.1475198119122645 -0.6434368190488069 --0.377518433597128 -0.3138010924176281 --1.7702083175031351 --0.5707514963839213 -1.4672444214917384 --0.9477840754474909 --4.099107731416191 -0.6130262909248922 -0.3009521833272256 --0.027791968793315674 --0.20836431532366956 -0.6974464457227151 -0.3698388972401497 -2.1062612019074596 --1.0189367933173954 -1.058499823410809 --1.0875311221417883 -1.7429837377728554 --0.9181423171513344 --0.8492718617776716 --0.8894027076044193 -0.9585089061885623 --0.6469842027340696 -0.5866257702573531 --0.19999419713618652 --0.2940841449003193 -1.3617139787141193 -1.6636161710419952 -0.1941229728850556 --0.029690126541926706 --0.04979960313781463 --0.5224304988021901 --0.491104447991736 -0.6204746240820702 --0.038828904832631364 -1.0535654922351185 --1.7566574157655954 -0.18669407151292222 --1.782328947802151 --1.1887282600297864 -0.21603235945416832 -0.27163664960912515 -1.3944895209287425 --1.2260284752458526 --1.0685638775589972 --0.7831887466584886 -0.842687019965757 -0.13903859563564297 --0.7678596340586729 --0.08948910147492205 -0.15162677279192618 -0.7595245084707115 --0.3308575703818711 -1.5588268464549788 --0.6803802415395255 -0.8492752035654694 --0.9941163251707352 -0.9459667429758588 --0.6138542548094648 --1.52848925866385 -0.8531904209958218 --0.8279287371478133 -0.5904597159317695 --0.6780577219766604 --1.6289235538264861 --0.43400419981973287 --0.7110031842389852 --1.5509432943602892 -0.15947023333535218 --1.0309316770441321 -0.315586427562808 -1.4325240893459965 -0.5491386292311111 --0.9499151066007413 -0.7675783742909972 --0.4302026610344941 --0.13125085030661338 --0.29925545546663934 -1.0157394840081941 -0.5369309605063705 --0.542643700333463 --0.20623901537890227 -0.2123689946818981 --0.40508718802316723 --0.2544485690912807 -2.834028686657216 --0.9905743074153244 -1.1485762944755662 --2.768316170397436 --0.5815987471763457 -0.1348510671319696 -0.008444676149211268 -0.3887764348085069 --1.1113392526755108 --0.11215180251871483 --0.5488000792449745 -0.61926336787226 --0.6770693035961486 --1.3220724490920666 -0.6229686925503247 -0.49708011358060344 --0.9065018134492917 --1.8318308877760165 --0.3748552196334094 -0.08811804954526967 --0.5999320133521936 -0.08247623837456115 --1.5462344819063458 --1.7163980278134114 --0.19937777727652334 --0.9614979577637852 -0.6096047828853209 --0.9185765247185584 --1.8852103564991773 --1.5965075535269815 --1.2230534385433007 --0.028306330057749306 --0.5387855964220644 -0.4142804284093349 -0.7371801209840098 -0.40690825329873753 --0.7841219983648967 -1.6271881774612484 --1.7450472078867172 --2.7363061409984124 --0.2627767575868674 -0.7910616884907852 -0.8711834866869899 -0.5675944067581375 -0.7306262601852183 -1.3997116980044033 --0.3959242064031311 --1.4846058518703293 -0.707336623828261 -0.1734479588114371 --0.3817961640806319 -0.8713209465878438 --0.9755454204308861 --0.4662298771647805 --0.5005050040456895 -1.125065789823952 -0.4139253688293049 -0.5606425174952923 -0.14329945770820715 --0.5071647478246762 -1.0092016159185289 --1.5319721982562364 --0.34665070698066597 -0.7443329569867071 --0.5964265073983112 --0.8604858373689294 --2.13941246471586 -1.0308146328467471 --0.08375036411150867 -0.3221894758214485 -0.33860292714193435 --0.5435241370937778 -0.9249498180808491 -1.8599976603288133 -0.022307487508737588 -2.053323361861346 --0.8124698588869161 -0.7603262607714405 --0.9776581766717104 -1.3498571935640007 --0.14938852884536663 --0.21721763688485515 -0.9636843669421435 --0.6326598017185565 -0.9053684977946933 -0.4613955132237126 -0.3245932409705751 -0.2584962085519335 -0.2319720388679001 --0.12304906996106191 -1.5768604667970745 -0.38060628751883946 --0.3675114612653456 -1.8065172213244531 -1.2563989060303518 --0.5875873023226098 --0.33532093361974125 --0.06953492938878272 -0.2839063500402722 --0.4470587591403942 -1.9131080129370317 --0.5112987585296537 -2.239718254273991 --0.11673374663084439 -0.4106494379957044 -0.005811949622561948 --0.5841548820550875 -0.1719989424882543 -1.3821734461909028 -2.750606852728632 -0.006694746209536686 --0.6918474166872276 --0.4361481579823856 -0.2771151906088952 --0.7719043629685459 -0.612298415165222 -1.1326683119104297 -1.3989782176349086 --0.31739239221523413 --1.0230810916446746 --0.34923114970030417 -1.0551317629610364 -0.0069658444747575255 -1.2471660505146684 -0.6951328285562473 -0.27712644052719104 -0.28219822240937853 --0.14789123952909702 --1.748526043300433 -0.8375623126176022 -0.6290095173831755 --1.4418124148833864 --0.28652033270590954 --0.28965865030098426 --0.4302435807985153 -1.0097672784382958 --1.9358113815115834 --0.3651329270304666 --1.0558502218237245 -0.1791819170342221 --0.20898609034592605 -0.7733477828848729 -1.0150452503102245 --0.7797928000518902 --2.3461344387810175 -0.48704417495795754 -0.39767706844680817 --0.12814051638260962 -1.023719672725106 -0.8598879385318039 -0.2870771817388223 -0.1262476910576164 -0.7671312308518317 -0.900694633515449 -0.9788074242234966 --0.7862911466183543 --0.24476258162858217 -2.342844241484416 --0.6239637572998735 -0.07453541245154731 -0.5248826316377518 --1.1740133835805777 --0.9901788001420069 -0.021236519433499444 -0.22821944354419763 -0.9221021597308678 --0.3328592231337256 -0.8166591359105269 -0.4319417858159338 --0.6064674390167233 -0.6111060602699305 --0.5905910578432693 --0.3094534400286941 --0.07385142892301222 -0.3250115675050614 --1.7364989797918353 -1.1151936250451462 -2.2010872491774105 -0.6145494003580876 -0.1866471084409715 -0.6081225699942809 --0.688538012772124 --1.297653443006581 --2.1004913099229987 -0.30502990629575116 -0.4226621132614954 --0.41490131481753906 --0.5757593616531475 --2.5630515481704874 --0.5824766902755185 --1.5494045381726944 --1.0902250245646903 -1.1868795905702716 --1.186215701077429 -0.6982138303250089 -1.3579103141258224 --0.4037728848256515 --0.9974471755477066 --1.189634762619298 --0.2745451729777635 -0.2986285914260318 -1.0911092145911203 --0.15784735600884195 -0.2302218868638704 -1.6009496177739369 -0.011352230005478813 --0.26203627843401506 -0.8529504853124141 --1.6677625236540194 --0.5400348525141581 --0.023465102334663816 --0.24645848256823918 -1.8432425715152914 --0.48721016373443177 -0.9956476965237185 --0.29527865819741245 -0.7153142311534915 --1.3826457225963058 --1.751237133610529 --2.32470945164382 --2.1296288315593404 --0.12433454883602238 --0.8774863200090921 -3.2643396685605577 --1.0431220217132497 --0.4406023119493139 --0.7369788545522621 --0.5715448578857988 --2.9423457883562767 --0.04709822081718339 --0.6305559599256847 --0.5311968319463536 --0.5931550740915451 --1.184063354513301 -1.3057434965428887 -1.8411545198972477 --1.8372584174285942 --0.846999888184968 -0.4617879361728763 -0.04350600388213546 --1.4803332749339413 -1.0048249543906207 -1.2217268099214689 -0.16311099153181496 --1.1097680950702071 -0.15497923589209525 --0.690493813173595 --0.39323483614964466 --0.07552791387089985 -1.551760789362441 --1.0251693549712106 --0.5466853393876647 --0.7378948938028641 --0.48996989673023145 --1.5256370569642261 --0.30782048111489496 --0.0076847994890376975 --0.9415123880396861 -0.08854724305047691 -0.6117989357600337 -1.247211499931036 -0.20230097568528158 -1.7430481080376548 -0.932915900126817 --1.390242523581828 --0.7454218084831686 --0.2112705100598781 --1.227295751757191 --0.5769205625435608 --1.4904743983891184 -1.1639183839604879 --1.8175882748524423 --0.4659710496221712 --2.560083662819635 -0.2355662669328724 -1.0471545139231668 --0.26305305413573943 --0.3961153556545046 -1.0113105348742129 -0.7850301573630082 -0.8648619676243748 -0.005516899323499384 -0.4384391996254956 --0.12791070040903138 --0.0781719014983647 -0.8274085900806799 --0.47409915369665934 --2.186086172844763 -0.1707315080465345 --0.25866300084347327 -1.1475323385889844 -0.9370734202208914 --1.1760153114414742 --0.5424740945905199 -1.1917108788998056 --1.8825881249379777 -0.5833318218533521 -1.0538735450498689 -0.8372813478432454 -0.03478506792185244 --0.95755121180636 -1.1772853761025879 --0.6997386659829562 --1.6137213533200876 --1.5162100701478858 --1.9994935367675106 -0.7160593776100656 --1.3048865158830094 --0.04290553848994221 -0.5761306252618728 --0.17296938672014442 --0.5238957270088532 -0.19985687433773267 --0.6955254296988808 --0.35749263896129496 -0.19572432614623034 -0.8944013075162871 -0.9762590361479833 --0.08519632873277451 -0.3772196312529292 --0.621273846892257 -0.03791107038743071 --0.0489014246297117 --0.6012426269416017 -0.3128875950355778 --0.6954751753069495 -0.2879391190214208 --1.0069230402190965 --1.1280486932659892 --0.32390464396767416 --0.43263629775146395 --0.008320483401047593 --0.15987309367470529 --0.14240405882501503 -0.7307601150968035 -0.6000857377221058 -0.4416023823455846 -0.18685638429828746 -0.010509190663790548 -0.8789025057090432 -1.1484865062304517 -1.3807018548358956 -1.2021412657058228 --0.32378253403364915 --0.9388877763357882 -0.03981139260281286 -0.5279297163635251 --1.4186000744978766 --0.8023343160191311 --0.5715315776319821 --0.9213206501773687 --0.1206177456474444 -0.030815250889440468 -2.05928881735313 -0.591469499144919 --1.6890097200470542 --0.62014694163235 --0.6875665349400125 --1.1891954050346158 -0.8986589215519796 --0.386310646541552 --0.2595953474867278 --1.063006620716611 -0.3426839095568038 -1.8208403733331477 -1.0050044098655362 --0.6065313546114287 -0.23993529925784693 -0.7330380953287605 --1.3694676038309685 -1.5136570256164386 -0.04658574758059239 --1.1045158013468481 --0.8847947111941022 -0.9951757671292067 --0.9791810681090265 -0.4807678609955926 --0.009777186097778785 --1.3275769807225788 -0.0156731305298725 --1.3539360478207176 --0.1894344234398504 -0.8531489702960017 -1.052024608640497 --0.47932102873214544 -0.1262231021897587 --0.6442160547408474 --0.11942693969278782 -0.6205533566229166 -0.05450468400414698 --0.6399461518099531 --1.3435628438876093 -0.4842467338021104 -0.1417813494470462 --1.7932592568593473 --0.0385396689452191 -1.6141360565253318 -0.3323790022332719 -1.7317920987634585 -0.03069677625478677 -0.6277006523497818 -0.9850786299925012 -0.9536427943391749 -2.252478853694749 --0.4429819929982994 --0.07733957151612741 -0.5231888658438486 -0.14754288001876878 --1.168089654207925 -0.5891412401189541 --0.5651242979512441 --0.5873453125256956 -1.5645010733377929 --0.18912314092413882 --0.30765412438385753 --0.6865899974492924 -0.30563657090447555 -1.6661310755916534 -0.7429946761534075 -0.36683206022322884 -0.7472445379187629 --0.4925164089417487 --0.16676284725592921 -0.6950151866476888 -0.7742795298499348 --0.2394272293609472 --0.7268067924044764 -2.1147397457970016 -0.39317054185290556 -2.201837714369591 --0.3213990246766231 -1.1790184824828545 --0.08952459589221029 --2.6564015006580037 --1.508623730399318 --0.8295716518015376 -1.1231951162386524 --1.011073456107831 --0.5793405252880361 -0.1392503008943603 -0.07942865098382888 -0.25763873105240565 -1.1768652836067093 -1.9862162403026544 --0.43905393673983 --0.129490552652327 --0.31157378437715655 -1.2975325350556617 --0.4854729272110368 -0.0728071288054429 -1.4926546008827166 -1.1598661450643537 -0.0854209073753735 --1.832294976966261 --0.885288320759693 -0.2209176521057224 --0.17929986320582206 -1.1688528096394726 --1.287710587955461 --0.5890788528770802 --0.6320959129889253 -0.019366247680834475 -1.2200845944536765 -0.11389656603412045 --2.151865437724996 -0.7520105400575342 --1.3414745021366663 --0.34904125466202296 --0.3025626278678197 -1.3668031662912639 -0.31055533801044577 --0.3956690591547866 -0.08418338692111876 -1.613015727933424 --1.773161609341287 --0.8937547702254642 -0.564013733094453 -2.6916618244844375 -0.27181987998933305 -1.055009600470033 -0.8543394561013808 -0.32032032457408977 -0.32937509375885937 --1.5984231343976245 -0.21218346760651038 --0.2011277902336648 -1.3798143601153408 -0.03084313777658607 -0.06314724120799764 --0.9427479521581389 -0.9746819126122014 --0.11259877384332106 -0.8535398250243994 --1.0198888353153523 --0.7390826769182124 -0.596255105924154 --0.6029796452846217 --0.23397388395517102 -0.8432818755100745 --1.5009156234887218 -0.2440437137784156 -0.48871297240870065 --0.1267363423339085 -0.7587475138519327 --0.28928115301678226 --1.2283291126497475 -0.33171084300484144 -1.0033467497004451 --0.27745907419097515 --0.030003799424861963 --0.6249880929357396 -0.3222667268414492 --1.090755396385885 --0.2911711169154945 -0.2467695365620745 -1.409887281382106 --0.45445489934505756 -1.1257892308049509 --0.44896753149632157 -1.153588854365117 --0.12545031108239038 --1.5327603572287918 -0.33379978935308 -1.6318283967967386 -0.881299679500788 --0.5312098717114703 -1.579177930245618 --0.3404181711171655 -0.8495506956083899 --0.7112430512202149 -0.9175706555993803 --0.5646785554113977 --0.734433395078886 -0.21521894867669053 --0.07139656786832 --1.2746451913568653 -2.4743763200364945 --0.7109822415225687 -0.9681105548074084 -2.3118671377104945 --1.2858155181256676 -1.6386701623936972 --0.22365293126846764 --0.005587706454992662 --0.6950472194420547 --0.35310779240602896 -1.6979982827904352 -1.8723884981349015 --0.1974192234164714 --0.28440399420502616 --0.21913788026341816 -1.2473938113964975 --0.5182067270449562 -1.0165456188966087 --0.11600990777339315 --0.19808841862783802 --0.027380131052911594 --1.5112441508725447 --0.2105595775228254 --1.1439249241914937 --0.8920585697071006 -0.37681796680586227 -1.6202349894262122 --1.5989595605830673 --0.3772633145068053 --0.5676975461724594 --0.3186037621670186 --1.0335345604765502 --2.6452254201732277 -1.492076666309538 --0.7526397132866368 --1.2464964675108583 --1.4150180464726325 --0.08712890849077093 --0.6994019620317402 --0.19280493613795563 --1.2137047387191668 --0.04022707889367601 -1.3281237420316132 -0.41188485841292666 --0.6690783599473045 --1.3676604622892092 -0.06607825899876654 --0.21431999865946863 -0.24394062131566036 --0.08477391136609681 --0.20761028269842316 --0.13452717553872515 -1.1113490875738687 --0.2325038659951717 --0.6602490722934109 --0.6218837602683119 -0.6651903690610299 --0.31599985675932907 -1.3649292721096378 --1.1327044709153509 -0.041685888339221225 --0.852105927563079 -0.9763026149807031 -0.6636491167353243 -0.6195425952774356 --0.2754132846012686 --0.050994217576851346 --1.1718961192891486 -0.6638793014525248 --1.7501723017182893 -1.1157039308166006 -0.15929993290499764 -0.9311712934388743 --0.7084422269677432 -0.7234262869542031 --0.3090302174326077 --0.7837881951379172 -1.007476716885108 --1.290704261851889 -0.09480445644328293 -0.7468931609435625 --1.1636130520962953 --0.3803126030927384 --0.307205745507132 -0.21383671858251171 --0.004433762788235021 --0.3437632732299827 -0.37052016552163103 --1.1367363387061953 --0.6574505607440498 --0.9772464651053976 --0.1392499971297514 -0.6612349740189105 --0.7699718770216168 --0.5832945860267242 -0.4971575065554937 --1.6711096496553723 --0.9817898964063413 -0.32394756941177005 -0.36038307620481547 --0.43865941184320595 --0.4986751530006073 --0.1316999642791004 -0.6426544199459854 -0.25773364264814347 -1.2335715114064425 -0.3127150136333417 -1.0233645160206233 --0.34120048208982473 --0.729625775142665 -0.05856020491693606 --1.7854095221620685 -0.018998144851713448 --0.5443467926214637 --0.5428006264719877 -0.4195759746763071 --0.04337733093648319 --1.2626249070169793 -1.00307547063602 -1.0631933379414045 -1.811294927717573 -1.6022788357705224 --0.3792009597137074 -0.8285050555806968 --0.7180372062793534 --0.5632740768174246 --0.4837179247916653 -1.19036702645067 --0.3124599455054538 -0.9505732252324437 --0.46139018309091295 --0.28854438413364586 --1.1052845608788573 --0.5432913123817641 --0.25377982365532237 -0.7083183926740514 --2.4519785553517983 --0.03082942678440883 --1.2727378767866255 -1.3547442722669347 --1.1746348002765084 --1.050571375711892 -1.4038509309526646 --2.288716668694644 --0.6585347949676342 --0.33288154341210063 -0.22558129374242597 -1.610864439368553 --1.1968803577806928 -1.394097017543155 --0.7986208141539464 --0.8303416193678653 -0.23085648268681677 -0.7629450421756542 --1.0409787886678612 -1.0253330891023509 --0.41682736021992023 -0.8818642698072099 -1.329368867387125 -1.3936481071192444 --0.11681242874164303 -0.11961887402416586 -1.2912569574928545 --1.2992674066952965 --1.2292555433324612 -1.4508391380743149 --0.48026255610983604 --0.5093582645049116 -0.6143934080126735 --0.28395375517336086 --1.2707547503779233 --0.886748114814283 --0.5394334554858979 --0.5880514940896019 -1.13188079046344 -0.7908578655995748 -1.6941863978438434 --1.0285971862958754 -1.913254410035739 -1.108709378357226 --0.3519644644186033 -0.43007852570009547 --0.04894566600202997 -0.25914418427139857 --1.2755067527000248 --0.6055977077427935 -0.07113918587148443 --0.20027076251589873 --0.7388027633229264 --1.9060776675101196 --1.1763506620307245 -0.5710715716617146 --0.8547661380549784 -1.8692617954662791 -0.9756505885269765 --1.0326604338683305 -1.4743798533871193 -0.17486548078785796 -0.0959499308272933 --1.5030331981021505 --0.17601018308398994 --0.8569283691288597 --2.0796528086096364 --0.27666596578172026 -0.9555432789950531 -1.5864577575236225 --0.8230484269999556 -0.3783085051934907 -0.6323358801704069 -0.8843547416372265 --0.20749430976170596 -0.23593162978025742 --0.05630709476983454 --0.6852243717369476 -0.09074534440699769 --0.6575787966040101 --0.023618397956367592 --0.491129453182644 --1.0654511323809703 --1.0130240445510184 -2.4163865908395294 -2.4261563028212247 -0.9466616360120086 -0.4161803606163989 --0.1912601237984028 --1.046952975374872 -2.2094434025539202 --0.38857051697478323 --0.9473598949665603 -0.06756579388180617 -0.1981734155734202 --0.9631625342206421 --0.12211889104177868 --0.32152830381354436 -1.8391868365025514 --0.16365013155222244 --0.7518787363882157 -0.44938367855334005 -1.6936936638316957 -0.6272358148539767 --0.5101281116932674 -0.1576790951352159 --1.1056741508299335 --0.4229624918230518 --0.9641659616425843 --0.4375131117987758 --0.6220433572641594 --0.8239377672111566 --0.02916398272242906 -0.381710018871693 -0.3700947173165927 --2.2270563163538464 --1.18568130272417 --2.8688066417212963 -0.9153863867126143 -0.9599394513005882 --0.3826789027875898 --0.35542600361236903 -2.1824963867453793 -0.5746025369389379 -0.03057875749209667 -1.182863738004586 --0.9037496613331343 -1.5887235248174052 -0.5099505422929719 -0.12955376418256784 --0.7605159601777067 --1.436338923760759 --0.33378190371298455 -2.196746982058824 --0.25256802756235613 -0.8829062097650591 --0.3995377349670225 -0.7361565647718264 --1.1205865929218115 -0.11842053063950395 -2.2492694012615018 -1.5321947801647833 -1.5634873032719603 --0.6589109217421292 --0.09582867679643749 --2.693491175829262 --0.43324674632080495 --1.815344375828329 --0.6552597523537741 -0.7316294362690521 --1.0142006001676596 -0.9378979627269651 --0.057476137400175736 --1.1705737099882203 --0.09188952444054067 --0.05153784819418804 -0.36698121511941845 --0.6231288826440308 -0.22716889398037798 -0.4226049286001335 -0.5296231065292978 -0.6675223658720373 -0.41820684755293325 -0.43340401556703817 --0.5715647192388328 -2.277497893681337 -0.20637744494798815 --1.2560504944839688 --0.31960771331834076 --0.13205988629687593 --1.3219799525858493 --1.4348795623843074 -1.1499093501308002 -0.2508010273107028 -1.6504692403197716 --0.2750913686721349 --0.4778700277589507 --1.4583912692691685 --0.8692074491896089 -0.502555381642325 -0.19895970899519552 -0.46468495219807054 --0.4291536945739347 -1.0398660865645755 -0.7431194486653422 --0.6635702211858198 -0.9471660418668292 --0.15982130192158264 -1.0645422498792372 --0.3730464420769482 -0.8022088011836415 --0.7334987270653859 -0.5090670873686972 -1.4505519179886452 -2.1384890876525358 --0.13220978819010976 -0.5960125118127878 -0.9753559904772278 --0.6103962325081357 --2.6188587991576453 --0.06901227714781948 --0.9179682632543205 --0.812338856022149 --0.8982951642896524 --1.1764452003967103 --1.6343660180248154 -0.6378247050537628 --0.28339482841247055 --0.08896804866585374 --0.5523799712817562 -1.216848505575167 --0.452311270475859 --0.46362839367547387 --0.40165626206634025 --1.129640475767996 --0.3030558383754731 --0.37884912436859436 -1.324095524770941 --0.7938025230579611 -1.7449476177894097 --0.23591415827624157 --2.54505155389354 --0.8454578568264425 -0.007693439045772002 -2.016807109494384 --0.921079869624194 --2.275736248777762 -0.7290883736528415 --0.6322802693927544 --1.3920770909035756 --0.6047138432539516 --0.2888783991637206 --0.6915326130425247 -0.5763202816301962 --0.49113211046328487 -0.5040653691786823 --1.9093366145581105 -1.0603684801363862 --0.2747701385105234 --0.20436361777816864 -1.486937113903978 --1.196023953233604 -0.36254619331065224 -0.05372180254710923 -0.944615574260071 --0.41944790023682366 --0.011473947421733525 --0.0572865583570161 --1.900842196301426 -0.865850252705851 --2.331552288778451 -1.1058885868983264 -1.3223722059205902 -0.38249608429223986 -0.12202923730118617 -0.5177373100175244 -1.7204676244937447 --0.31683467785449876 --0.9100497663431052 --0.7666892845558273 --3.044928080918337 --0.13663232847682685 --1.349041369340566 --0.09599896124986669 --0.7085743698341435 -0.2776804106833053 -0.39041279019722247 --0.16370921100603686 -1.4137926717075475 -1.0372583862892903 --0.1474977953068777 -0.1758661215082409 -0.5326687321069111 --0.9936540282711015 -0.775828531569656 -1.1035905862837827 -0.29853101213405414 --0.5206548006986289 --0.6273794258213973 --1.0556796497356011 --1.189620215494905 --1.0281427666035723 --0.8752068241921284 --0.1468835261739412 -0.12274423200547913 -2.0179078914364004 --1.2799041226599954 --0.8866221080622152 --1.5124436214683386 --1.3714000330267688 --0.5738264438462074 --1.6612554521229927 --1.1290924648408769 -1.035435588118601 -0.08351988037996531 -0.20121386679961534 --0.016235705143321955 -0.5307115681817934 --0.2439637746367208 -0.2608248832078739 -0.660811216731503 -0.9118965688887547 --1.0765009052159353 --1.5450302397958486 -1.2719238881481238 -1.1990035251145328 -2.155442719500286 -1.4151422778025353 -2.3677470563514276 --0.6594192268580792 --1.11260284284767 -0.6955973355433089 --0.7242832813711668 --0.3396486451876532 --0.7679284095182134 -1.1817451074164835 --2.0958374506406403 -0.7122019529807901 --0.3868632898484214 --1.759564379509889 -0.02116173148317823 --0.5605020290645436 -1.1953333330934317 --1.7965015294465327 -0.7796179293323641 --0.4119658073117867 -0.17611647823313242 -1.7681046685576622 --0.4682680512414155 -1.125090655122285 -0.9089710835371575 -0.11372568513834687 -0.2625036336980033 --0.06994293455420535 -2.0725016436464756 -2.1694598435790047 -1.2431196365382546 -2.654995333365721 --0.19852461163132856 --0.5753883015521903 --0.4573137238804818 -0.4094925896376006 -0.06639966009583978 -0.8622957079285006 -0.23452132788627505 -1.1784324753927153 -0.05435588581512109 --0.6286618650863409 --2.5626990796216003 --0.40937157771512583 -0.05403733216313565 --0.09381113207014002 --1.0220371996388555 -0.6694711746937356 --1.3783498628097932 --0.0465270382339321 -0.5856977424026723 -0.903896390345066 -0.6241487321343417 --0.8769091934837481 -0.45325968556201696 --2.3655991040025337 -0.1513008138210347 --0.5094265038438429 --0.4827245105618083 --1.0054789895674867 --1.463387381750453 --0.8774400282668333 --0.10540187861202292 --0.8268871562957039 --0.30020021964534116 --0.11620922193475641 --0.49228000414969103 -0.837802920280023 -0.0251141192549935 -1.8330279367978988 --0.4830557388237272 -0.500325601757728 --0.6517941590248804 -0.3119016348816945 --0.16865730902340334 -0.22139990135554583 --1.3354264766081427 -1.1846871856810919 --0.3985341462065079 --1.8686670790245379 --0.20441502789771215 -1.2789283942435798 --0.180404586409714 --0.4853544890660012 --1.8345259045210138 --0.6425569306512604 -0.6191725631396638 -0.9549300099314162 --0.5200753765524597 --0.8518580101228734 -0.7895098619022926 --0.7373953855731766 --0.7805286031232708 -0.5117157427141202 --1.1756983258163263 -0.02962519248812563 --0.12041929575318362 --0.9572010823710774 -1.5652219390054913 -0.3249753377726372 --0.8118812307276447 -0.16135805993375385 --0.25911096560323243 --0.3403224923216754 -0.038220087243847206 --0.8498998784817899 --0.5942302461562733 -0.8083983132810949 --0.4964715441287411 --1.9061974073623524 -1.263524453789221 --1.7957591838069031 -0.21953829447467274 -0.05160467811318087 --0.2577795029226441 -1.0009287402453744 -0.058306416724374796 --2.3223213963257128 --1.0096894241170065 --1.0320425269066695 --0.5705385491326752 -0.20489421483820888 -0.5680720339286585 --0.5729289898534864 --0.09729341416069337 --2.388414178325412 -0.6562226300775104 --2.299936582263669 -1.9693553280350673 -1.564956188574594 --0.8738725360771903 --0.2857581268680153 --1.912935379197331 -1.064422993174428 -0.6139126585499147 -2.373392587184089 -0.9981693460655727 -0.32162851036559637 --0.7624070264102274 -0.1419813562147234 --0.08958024791569903 -1.7973885825901859 -0.34778656338102 -1.2412865817813332 -0.17913220255828985 --0.7444195629141945 -1.1186285920648569 -0.030244191808665017 -0.6070039264164183 --0.21711050343631869 -0.26384588402729325 -0.2875602041011349 --0.9471745853450387 --1.0594606049756432 --2.0046151794373452 --0.03530661982321804 -1.3727822152892557 --0.4330792844860747 -0.4641970112906262 -0.15906536768440377 --0.7675048251465456 --0.2944601269731166 --0.6491481385185601 -0.608561771712707 --0.18335073333695784 -0.3566131429270858 --1.1704532756033303 -0.8676821647079129 -0.06378689661786009 -0.7381095144765777 -1.1827486458260557 --0.6391457684482449 -0.04754726250713986 --0.10531211194222591 -0.7638799978875739 --0.3582617610177069 --0.7351485956818947 -0.21939741990643297 -0.36105086174114237 -0.5959703740265403 -1.1880367847481048 --0.4840468850147896 --0.07224023365804107 --0.0029822717341760076 --0.10376710596146708 -0.16992115706473823 --1.4384234773245677 --0.2664645896247358 --0.6210552554794685 --1.3815356534401264 --1.4189944724875647 --0.6005764089314253 --0.21682985995735526 -2.126155349410396 -1.8181810758567944 --1.5434810718816534 -0.8785844249758589 -1.1938486022190369 -0.3053727957366163 -0.6177429858273105 -0.42566648922659533 --1.351740551125603 -0.6321379772765958 -0.07172299792053169 -0.09202221465996477 -1.4046527061871987 --0.8809309312824363 -0.7861984125124415 -0.18891066166979087 --0.8860057587969441 -0.8382476899779648 --1.201204588176917 -1.551381203503408 -0.9278622251942307 --1.5478812739250962 --0.44770472600426575 --0.536588398193256 -2.087794751055258 -0.9373460422859332 -1.3192501215691672 -1.2560725734953042 -0.7336671629480306 -1.4318902202922463 --0.8478611782382152 -0.005404822347534533 --0.044775260905302844 --0.23479977528262413 -0.701797902921702 -0.516037310307348 --0.82860480984072 --0.3681869880846471 -0.4097351685313767 --0.68101915586333 --0.5557158294646569 -2.091022574523937 --0.6621009333039067 -1.8894653220657462 --1.2087959968346202 --0.7107261580367067 -0.6912459390808511 -0.043295640717428384 --0.2516673389034502 --0.7119998915648437 -0.985989679509444 -0.14742524106007443 -0.5991209541185929 --0.6202653205220576 -0.9491828121613848 -0.4628398862353808 --0.3489532430304715 --0.09794310051071986 -1.8032619296210461 --0.7437346474807001 --0.7068736234776231 --0.08648200584380879 -0.12123989489744362 -0.49303025209783735 -0.08436408542305907 --0.8555346979901922 --0.9401146197399772 --0.8828614685682079 -0.3943581579665719 --0.04828333860572817 -0.5956165810593106 -0.2491192341174648 -0.7856590091774421 -0.27132350333844835 --1.3169434492238845 --1.0806979930326126 -1.7674994873184167 -1.9735198734149153 --0.33528297406107027 --1.6391491296461698 -0.12081919884708556 -2.307698166181112 -0.6062561867183542 --0.03771393351704111 -1.3654445188415598 --0.2658972392930751 --0.7410765869213294 -0.299263570642524 --0.27225572881109006 --0.4188900686640545 --0.6306396169228454 --0.7070265884030451 --1.1336015137919802 -1.6281755350364935 -0.20343851496856716 -1.3074061908689962 --1.4536754839792205 -1.652107790257876 --0.11317454517443087 --2.5201905452413964 --0.1339721680538333 --0.2887822607588773 -1.0529063606577522 --0.6155392883652981 --1.3319303405896017 --0.7482060854653438 --0.03136270361558023 --0.008050340269619774 -0.5436624562777521 --0.8054530889588472 -0.31099428962244546 --1.317475335073294 -2.214683627411369 -1.1406086616507116 -0.07419307728927793 --0.9373550397423673 -0.7811786807740966 -0.01715232043404262 -1.0304292195518603 --0.7400794988225126 -0.8775379949563369 --0.3197384468751004 --0.8502335019827383 -1.0648595349237344 -0.06866923519699528 --0.48105499643124355 -0.14293623761469423 -0.01540253420215362 --0.6751713777021208 --1.151239627902069 --0.793445403358243 --0.3300322174388667 --0.37803699618149494 --0.29301401439385094 --0.807856554183611 -0.38369912982644566 -1.1493435877771025 --0.23578824396504758 -2.3033239554175102 -2.245472313792965 --0.30819532376323744 -1.2045574916897157 --0.4841477988869694 --0.33470498687259775 --0.019086627438061908 --0.6500202635174063 --0.5393419932527003 -0.6586257931307629 --0.99399656927043 -0.9687863182167296 --0.4147788120309125 -0.23291291488292662 --0.8014145574225273 --0.7391890990401467 -0.8251795781341407 -1.1091466939708092 --0.3027416876835624 -1.1325618540888966 -0.6459982399119081 -2.384269343211027 --0.09713504145263299 -2.655998983654181 -0.397174566770276 --0.6897080447895072 -1.0986548307467867 --0.7423603289742245 --0.1548023584821741 --0.8919816263873932 --1.2659067118448837 --0.058268066232764086 -0.34347097951202665 --0.38243222421878853 -0.5296125061451109 --1.7158474741352163 --0.9709324610326807 --1.4814359155639294 --0.2138464088116013 --0.09534157385600583 --0.05179974883363281 -0.18774577735286013 --1.5267255451948933 --2.4190433985066337 -1.1477210496013426 --0.8117509353122849 --0.841916319261206 --0.6795209720091457 -1.5200976758585767 --0.27742777901068055 --0.007467608062969834 -0.49556093543149765 --1.2728485391315407 -1.9175792869911128 -1.1429357526676533 -1.7145119805771223 -1.3146457677748344 -0.6084559313035656 -0.3305423164058851 -0.15375806653110285 --0.1975167918347085 --2.4249872959244816 -0.8046627062650522 -1.0629967813724694 --1.335341067905859 -1.1641540755728137 -0.7070375969745293 -0.19925966106840115 -2.1276553445665938 -1.3666840643966653 --0.3653555578720506 --0.48063841502958643 -1.8783115980135368 --0.20393796666547587 --1.7881531793943326 --0.1297143522941422 --0.2926569578776931 -1.1562584407816658 --1.1004918028140003 --0.37487034435837807 -0.7235062069422056 -0.37212615680469313 -1.6742784159091624 -1.1994584797265606 --0.1312779883746474 --0.06859249782198397 --0.9993120609117895 -0.0019740479661143756 --0.2327410000672259 --0.5471103848640124 --1.3974998647944938 --0.5986597901660876 -0.6789334235070399 --1.1840814981927017 -0.775151219961979 -0.004009708344558767 --2.0923419624970796 --0.2800026736676226 --0.2919189634771034 -0.9883980986582656 -0.009186485241266546 -0.333846436768859 --0.7069131305736878 --2.7745562774986983 --1.760172159128604 --0.7525559049580306 --0.3782638082941735 -0.746750564129612 -0.17947363080111192 --1.0428888071295586 --0.46288711442774494 -0.40492252088470787 -0.1327052536679484 --1.019056030178942 --0.19931592909176907 -0.09987230390836065 -0.05077686612747275 --1.6111129403882416 --1.1366205091240167 --0.7820802664960805 --1.036930906238539 -1.2100993880664848 --2.535309158304729 --0.14307023250663986 -1.2585175095005945 -0.04122576979427062 -0.01939201164973828 --0.1061794081729532 -0.049551554818082995 --1.1222275982525602 --0.20858159538487467 -0.021518616007662344 -1.0260907566276485 --0.48811360448416813 --0.21955428663831478 --2.1120999811502883 -0.020042817468248042 -0.06265330356853085 -1.5636639696374426 -0.03135830291949495 --1.717407165559471 --1.0903119938220516 --0.18940381930088557 -0.7345751785982045 -0.5545492877650405 --1.442412888091488 -0.540367564210851 -0.02655816467609097 -0.11439014294320717 --1.3691395825755133 -0.845084015546125 --0.691191868777309 --1.2581770642648358 -1.460279758817549 -0.5850492176627912 --0.2485508053488039 -0.2825640748371889 --0.20841055699410174 --1.2632132384037944 -0.22902965861437574 --1.3774400696059885 --1.1664964461624452 -0.9436892065588687 -1.2254298065859326 -0.38821972202276334 --0.4337196618998896 --0.42627281172000786 -1.5820034575116653 --1.024633569843997 -0.6958358817206574 -0.24130060094996708 --0.1814744889298019 -0.5454833917874893 -0.46936897257838645 --1.2688913458824762 --0.2627118350980033 -0.8420730700788808 -0.16816945380169837 --2.2798623235432203 -0.6402665844893559 --0.8846611332805316 --1.4675487561404914 --0.027947964015784182 --0.5901763345085441 --0.571330804925102 -0.5228306108002879 --0.9927174850952905 -0.9646135860076068 --0.32822349961282143 -0.23468114617923438 --0.1720357121194219 --1.3795098242773651 -0.3764462905081658 -1.9972718587424056 -1.556041874317466 -0.9200358605760568 --0.6745907313587769 --1.394750960577672 --1.2478606366264555 -0.07910443162906251 -0.8218236903010812 -1.8253146962656162 --0.6585257389921619 --0.3394370746008006 -1.2060992048285193 -1.432150846756682 --2.7896514110375583 --1.4210025772858073 --0.07928996936032522 -1.2330750687852565 --0.35422614195875274 -0.6025729835840276 -0.04067861174242849 -1.3351240422014525 -1.1402092931121888 --0.886031203419091 --1.7136121738762682 --0.4184443675854124 --0.3090451901390564 -0.15666135268025067 --0.39817132068500316 --1.4331674901303566 -0.28806969731642024 -0.49948426774057436 -0.14188842274291272 --0.6946810287845809 -0.08375873826764163 --0.7511245951620114 --1.7279330969951363 --1.0741408184854724 -1.3283737237252105 --0.06410374928391674 --0.14326999494902398 -1.085098722124957 -0.033009345492979444 --0.3276208027476281 --1.3587669569059793 --0.7573428508469043 -0.505076045126044 --1.2640575126397604 -0.32695128835410947 --0.8386808734288219 -0.5618602704881784 --1.5603940686696183 --0.07163558018420459 --1.2782965435889155 -1.3352641730401211 -1.8049996557577366 --0.6206566719172607 -1.083930702376392 --2.181811767355324 -0.18420043692719987 --1.4140457975407856 --1.2982769380747485 -0.9607017940784062 --1.2501067799809114 -0.40405956018340067 --1.1850570525504294 --0.15250495418968094 --0.06373255103220166 --1.025688728124341 -0.6782620562324109 -0.9569888218932269 -0.4879257762436095 -0.9639525162418304 -2.427050531077266 -0.9023412116758034 --1.3493686517953134 --2.2691909546990323 --0.13722118018082896 --0.13978522658916678 -0.612519762222851 --0.2769158784451625 --0.17297932262997898 -0.2182143503277944 --1.7395317211637196 -1.9298412957204756 -0.318258590110714 -0.25124902198321664 -1.2984916051449515 --2.814647019038708 --0.6334934518022269 --0.2604784035123207 --0.7224025791772019 -0.7281121948325828 --0.39875042047119436 -1.0089617210647406 -1.2581197030904065 -0.14388199168314622 --0.04674104191766264 --1.9825403791891 -0.6172187234222721 --1.171045319936283 -0.06136285297476547 --0.5165086631640555 --0.8742219813761289 --0.19136924393741708 -0.32727444560162733 -0.17349174323780794 -0.9287197100389789 --0.08746723220703632 --0.5125899967705551 --0.6003225722348048 --1.4357475660936783 -0.9825652414821684 -1.4967966887519581 --0.37037641612690037 -0.7132341280657221 -1.0393142353016043 -0.5013594876517555 --0.7846410060124374 -1.7024881884701735 -0.3314712588569351 --1.4904013492975534 -0.6434738092589467 --1.10697456220008 -0.5175698931254972 --1.3159317437618177 --0.2963921253682635 -0.5311834708883307 -0.8213953642754093 --1.1224450233877956 -1.7170769918289683 -0.1953396753994186 -0.8107919761308794 --0.4804347018257654 -1.543432046125138 -0.6685288840285973 --0.010702301498997983 --1.1605875218044932 --0.8606247501655305 --0.40485878027041095 -1.4127754267864308 --0.5220439255194216 --0.8007740018790719 --1.0119216881494948 --0.1973642273557883 --0.33870110669387 -0.40086570736168103 --1.2794105899410158 -0.587781711551822 -0.9691610700853303 --1.3449248734876798 --1.8197939156254872 --0.9347201351671611 -0.5558458815877265 -0.34012129292553306 -1.25558674705742 --0.0014497752961544531 -0.8244642068245615 --0.6046139802358577 -1.5067535860260428 -0.46091070469778594 -0.9637700322689825 --0.9311209129505763 --0.9829266724414228 --0.9460211733130145 --1.1897051631870208 -0.6073851681554716 --1.5129746771824986 -1.296720997692597 --0.953648524186918 -1.0775201811481783 --0.6870721615775427 --2.0874730870563787 --0.070947693944417 -2.195670135837677 -1.760834378385156 -0.666470164757036 --0.4802411549169391 --0.4236153670193944 --1.4734224476901574 --0.4338204413637043 --1.6002014427905233 -1.795964658818835 -0.2630920579045299 --1.435534765531603 -2.3159895770055843 --1.900548832898129 -0.5236826033524136 -0.012709977087080868 --0.13479589221534047 -0.6913237185006472 --0.291169325524525 --1.6428789606839451 -1.2375659021410026 -0.31247740912829 -0.7840434111370662 --0.7251369609103092 --0.8610166357406248 --1.760388530589231 --0.5825351943564941 --1.233329326408392 --0.0337474056924485 -0.15046275970101852 -0.4598080185566651 -0.4240473800349137 -1.2074199247722135 --0.19576773628842545 -1.0819894906942555 -1.2173270474101447 --1.3151481335445538 -0.6257190810718165 -0.8932945564631447 --0.19937208511438975 -0.31918979085732946 --0.24795033497523575 -0.5921483186814994 -0.027378859795627115 -0.813838662841711 -0.6265977025682736 -0.3214900656972518 --1.4405634511271732 -0.5111472388598024 -0.5125100307670356 -1.503044234969317 -0.4052517922612156 -1.4884435429400453 --0.07725950463615415 --0.8680007112565872 -0.7366464434485144 -0.10368693401167892 --0.7339445468015139 --1.856857910996448 --0.2895987571850502 -0.05867480955083606 --0.7256765314426645 -0.5949649700712443 -1.1714877794580056 --0.0025765131001317483 -0.2597186430701993 -2.881140457982361 -1.0787241813805568 --0.56995539508714 -1.3211097834646564 --0.1717247837990502 --1.4024978388733862 --0.18857238419104763 -1.2465853040494554 -1.0344118266636888 --2.0497127300280873 --1.6368037754891538 -0.8874740971394923 -0.4630747731852859 --0.32950875504106497 -0.20773712574688932 -0.7987488610343655 -0.581483764677233 -0.10137597820757417 --1.0951847945484618 -0.6351052847197544 -0.10687520569774672 -0.5787622425697061 -0.33140143756432816 -0.9324777486796247 --1.1114437524792469 -0.4770758784901513 -1.8471709743974536 --0.7201960967696436 --0.5610433438297574 -1.0258912211911495 -0.5916810892351377 --1.302628430194429 --0.2379962299302911 --0.50772207326746 --1.4897014604718013 --0.9106400310828341 --1.7568572204915869 --1.5207633681547061 --1.7843423209965665 --0.18530414932533 -0.0872581230679819 --0.3466689385540662 -0.1250453926571983 --1.457486522725414 --0.6910760663872457 --0.6244151609920504 -0.8036793678686076 --0.6486319021574026 -0.7048458268309713 -1.1539371604520692 --1.7874066045491177 --0.6574039676957606 -0.5217038213826084 -1.2451836401723788 -0.5656594052614539 --1.0388887517598648 -1.4933717732260028 --0.5232189970835309 --1.1646363738921313 --0.5402875769748152 --0.4561943523501876 --0.3527423197340744 --1.003795252255224 -0.5206339198452196 -0.4294931527755049 -1.4547188078213515 --0.5366170416034706 --0.6654465282713542 -1.5737154041037729 -0.4096561470831001 --1.4682219840210404 -0.02668199725156336 -1.3836391795326 --0.329947581275645 --0.526087887949622 -2.4877491416374697 -0.5484405337368511 --0.029172281105472046 -0.2089693133593403 -0.05438615406737375 --1.625904676195174 -1.8734458175701032 --1.2424746005120941 -0.7095079705490298 --1.538610333533289 -1.3995504188256749 -0.546342541455411 -1.3860788116396163 -0.9276982534237169 -0.7677272161187005 --0.4103420893859777 -1.225988787422707 -0.676889637233247 -1.8488393149522897 --0.42154631861489006 -0.9161706276953331 --0.03322160203009848 -1.8367528389351229 -1.2715937894524478 -1.2477729334700276 --1.009947217160572 --0.4703900682058719 --0.4571401627117666 -0.8810401629261941 --0.37437172307159117 --0.9490760539937301 -0.4340198384422644 -0.08356435358533927 --0.6130166534263572 -0.9322567701916595 --0.7677650291988166 -0.26408647357675075 -0.2050807402499547 --0.1298048877584135 -0.09470493779019748 --0.6981557211640372 -0.5049228168119501 -0.38435354380810116 -0.9337312824628565 -0.1478094052820799 --0.022682525695743902 -0.9973692411522134 --1.3341339027258612 -0.20385758646264554 --1.8657218111931555 -1.0489611739323832 -0.0786257458915982 -0.06396030776540894 -0.5448831696762562 --1.5876763636202895 --0.5515308494067055 -0.23117678673588812 --0.522125890987023 -0.6278042833915686 -1.58933107276825 --0.6131913511337328 --1.1524244049070054 -1.9379658732827576 -0.59073062036575 --1.0163828373688768 -0.4822364988822324 -0.15676391321006325 --0.26892878450401436 --1.124138939751114 -0.9389793600219026 --0.5625377047203691 -0.9127035697055546 -0.5205643822188726 --1.0239049629045018 -0.4375081587639791 --0.3630087785223475 --0.5565145760706568 --0.46659443921557936 -0.02802365686410956 --0.8969478154635242 --0.45046985900940595 -0.1912697448523298 -0.7407588601766902 -0.19014553220870478 --0.32995990329225067 -0.728327050248998 -0.6420507326755338 -1.0811359221230665 --0.19728335146241166 --1.6823237800303628 --0.522757411162554 --1.3776030498567347 --0.06435389388852081 --0.46892929309132186 --0.1710846359955958 -1.057522033856794 -0.2847937855574267 -1.3419282598377742 -0.5734595449872314 -0.05322182897114786 -0.05528527396080183 -0.5953459291905332 --1.8522396965791474 --2.4513857023103927 --0.794410465557233 -0.5631553776894118 -0.511228087433203 --1.808641657101182 --2.1180123992201425 -1.3915235997240494 --1.4898404991200522 -0.06912751003065284 --0.8219397725680825 --0.7145795535462309 --1.9456060773117103 -0.45476896127497995 -0.49874574285091244 --0.20791893542377574 -1.1071915675435249 -1.8848025132248174 --0.5288516085455373 --1.2011364500458817 --1.9559159482221917 --0.6101417945110134 -1.0176292534708442 -0.645077657438761 -1.3212309741809753 --0.8422327951727872 -0.030573207134761145 -0.042867832737324495 -0.8792191017394941 --0.3505361080525034 -0.5284892076771086 -0.9138084920106183 --2.1293402796413607 --1.5233119120416312 -0.7056980179270714 -0.13714332367288365 --2.6520630675810106 -0.7534534692815748 -1.3322049416038115 -1.3487714207866808 --0.07671268315499034 -0.3180772362415552 -0.23652469729204825 -1.9241829732017244 --0.5570320428189545 --0.10428411164008189 -1.7529645386644936 --2.1812574452077795 --0.6721617046051452 --0.1775750728109043 --0.11145160226152519 -1.4301170801260683 --0.2243298957709573 --0.9645659823123759 -0.6500153307764012 --0.5771341957310637 -0.22699331788167595 -0.10468482223074266 -1.3098693061539082 -1.1592484645076608 -0.04034561863815285 -0.044938618956315735 -1.2013198645176901 --0.6899243650526319 -1.1950761667332042 -0.793836093639229 --0.12406222054417293 --1.6519401891210261 --1.6508717102067305 -0.24170717358051022 -1.3156992125296216 --0.40124564816190617 -0.392409801703964 --2.7756989391199065 --1.5709911083172514 --1.2415857229217255 --1.855433095803629 -1.5589690820194104 --1.124701874845882 -0.8194417379563939 --0.4411026342804716 --0.2913455855396315 -0.14041367591415857 --0.581852827795871 -1.3123522693389482 -0.5772910719884893 --1.7398187307204978 -1.6292225874107746 --0.16458503336817312 -0.19917368621660053 -0.2910926136915744 -1.395183484331253 --1.1031618411570623 --1.512877946394856 -0.09006067667654463 -0.2977076880285085 -0.27762817210990015 -0.5873648539349864 -0.5027794545316208 --0.19083943817239105 -0.12131449790375337 -0.012661941761504095 --0.31823974509446123 -0.15470872616151501 --1.5905587432326678 --1.4258279146661308 --1.5340001676592387 --1.9560816241685803 -1.0969016224519321 -2.351811746441826 --0.5305353645444634 --0.6450331103872496 --0.48508025107206587 --0.24923408628238847 -0.26180943182597527 -1.4821564984705096 --0.7169426131551309 --0.7429408794931492 -0.9226984075038901 -1.4374529475802251 -2.0046866636928584 -0.8279867050574945 -1.7352762673211433 --1.294788553492607 --0.7965137505008514 -0.27810095213026065 -0.4660664118271959 -0.7253413636898065 -1.265386761386249 -0.2505085411429711 -0.07018466916719336 --0.7724369810075383 -0.007188954231059629 --0.6744662569764887 -1.0544479340002146 -0.30501680319744795 --0.3451164620965795 -0.5211094384818059 --0.3065590740340663 -0.9321467102722593 --1.155605747471194 -1.2531985609368272 --0.7373168147947706 --0.1807963888121493 -0.30708051911365236 --0.052376840697344586 -0.425480295786428 --0.17570856448376745 --0.4393512359903319 -0.047606815837476606 --0.977466397617922 -0.16017407833023545 --0.20005983612515257 --1.3865174934374742 --0.770676113754398 -0.7811334968687983 --0.3168876807995181 -0.7870986254692093 --1.1046286837449373 -0.8002652409644297 -0.5538652008634338 -1.2939073568048973 --0.6922888442023533 --1.2333261724205946 --0.0658739051213449 -0.734000947361507 -0.8815539468774246 --0.07450317119002098 -0.5470226630898597 -0.43731717514825724 --1.8116519609089012 -0.1449907678446624 -0.13102489720664637 --1.4259741416169458 -1.5735648713392523 --0.3443323853577938 --1.3757444699614145 -0.6373792094073966 --0.015985354401546945 --0.4983290548194848 --0.026552049485954167 --1.0896080391562106 -0.9681464879012392 --0.19746308068463853 --1.978759303846614 -0.17465494066329665 --2.2705372018997267 --0.1955160372543641 --1.6560625188828357 -1.1197668945986636 --0.02034580030220598 --0.7590089417729151 -0.8071611157066327 --0.6164957051251065 --0.9662981086884636 --1.282398734667705 --0.2438233761155536 -0.3983720071250469 -1.2889343263818385 --1.1240710401243352 --1.1320070453810251 -2.604141916029393 --0.6764122337102165 --1.1576422570696197 -0.21495185669509453 -0.09912048433807438 -0.10090194626622415 -0.8798791952256804 --0.17521774679369653 --0.5711236744362782 -0.6228564243338994 -0.5311784304411815 --0.10187005700119203 -0.9212018883368587 -0.4644549798487997 --0.4880026601747822 -0.7229833980244139 -0.9600512126678054 --1.506026222605138 -0.7049172106700344 -0.6651716009512418 --1.6107952362087932 -0.8953471477590267 -0.04570442134575067 --0.6821472771560066 --0.635238831879585 -0.10052927944043348 --1.5379001146355913 -1.4366218866401899 --1.007885904513576 -0.23613131683379265 -0.6664692411990611 --1.1390481576210207 --0.743934019630708 --0.6028702714016752 --0.674819784087675 -0.8993352001123331 -0.6705769958510457 -1.5320010024100035 --0.28071698629491154 -0.5466284811214274 --1.0308803742290722 -1.0464383926324983 -3.0216424170050606 --0.7558659128379626 -0.07513809083679494 --0.8143429300109439 --1.574575991957401 -0.804439242847564 --1.4037518003704612 -0.6419315511283995 -0.5385224467752697 -0.3747730279961464 --0.33527062487911014 -2.642005768113923 --0.42869102761813754 -1.019153782277015 --0.7700907312913794 --0.028205895361855877 -1.1045178553417974 --0.44757593707967325 --1.4601014983486271 -0.041643183160693 -0.18276608796602836 --0.309552643441078 --1.0064573784251303 -1.7977659378443511 --0.19915755078713349 --1.502616835223893 --1.0463009020800702 --1.8477864509091086 --0.34951091731743417 --1.597372814412405 -0.22756583582863513 -0.629503428579218 --1.1021774063287553 --0.1626155681173366 -0.30104644904904587 --0.3938551262981232 --0.6617628357143382 -1.0235297692937009 -0.17788013736066344 -0.510437119996969 --1.3367122202365302 --0.010431851962334487 --1.9860665954619472 --1.0995942080713041 -1.2701573596307039 -0.035948067102071 --0.07981622322734443 --1.0012595946130765 -1.5074340116401435 -0.6369498162559655 -0.2988778216225027 -0.023727817412551037 -0.7655475994179579 --0.6778654949062307 -0.05384934997889814 --0.05501283416784191 --0.3378142271939842 -1.68517610547413 -2.2293241771521397 -1.2027578799377052 -0.9297838908145486 -0.1372121532684871 -1.4113966721191216 --0.5791673067226968 --0.3577673865424761 --0.6396199939499742 -0.2292544630306995 --2.353879853536269 --2.201553258785175 --0.4984392412273965 -0.6696790482969599 --0.9388190831372912 --0.19133782734458762 -1.1725014017737625 -1.9283972929735718 -0.1882116163478166 --0.6234996301771295 --0.6915242299802927 --0.2080807576293513 --1.090810709687039 -0.0989164278128253 --0.1559898927223114 -2.1052185511847843 -1.4627223364609605 --1.5481173150211014 -0.7550961715509031 --0.15606189714116342 -0.06652764307590274 -1.2460820361547396 -0.31706501377588475 -0.6189322826725338 -0.5849251520424851 -0.015811486188753665 --0.1648596784398934 --0.8697474792121045 --0.1144755695020663 --2.3482998462367495 -0.2613969994743885 --0.2234553969276773 --0.15340410490873366 -0.7730280682278674 -0.25119767717303193 --1.7396660771307624 -0.669120137229258 -1.2910487290750798 -0.0003447680093071507 -0.4108111427078423 --2.139252656726531 --0.2517397716045069 -0.40148466873372074 --0.38491118751884634 -1.5961408236687387 --0.2909246619784903 -0.30997446816051233 -0.7369543836300391 --0.31793096577249585 --0.7633921988719966 -0.7645283425790851 --0.47358436452762187 --0.9309502704205457 --1.3382952919133646 -0.7771268807854963 --0.6137642740424255 -0.7939092325315199 -1.027551593894824 --1.6620033583460974 --0.6489863127238302 --1.1849414110663683 --0.6964789802458795 --0.16964575001240015 --0.32325776291745273 -1.5364883849029305 --0.12364766764467967 --0.5434828189033506 --1.2938391762213324 --1.030340209277469 --1.3357807071611039 -0.15877692121817288 --0.12426276642219572 -0.5208302186828978 -0.5228907110942813 --1.533206832712129 -0.4311594211250331 --0.6408458880314467 --0.04893796332388742 -0.18269690002715347 --1.0348119208581927 -0.48142897888774544 --0.6410141507141268 --0.7047703688886694 -0.18091711992047974 --1.1350021050918266 -0.3750846315622034 -0.3856526374598582 -1.015489251619844 -1.5455755533859352 --0.06512776358239261 -0.6869644692516548 -0.26692810101616915 --1.7366692317778272 --1.202612074655254 -1.045396374258627 -2.083667438107358 --0.39471191358898716 --0.34725765137739045 --1.3181248885267463 --0.3263253751637529 -1.545698219702385 --0.5650161718722839 --0.4802995163594337 -0.21554637974167648 --0.9509854130786177 --1.6284219096777444 -1.2395432880674686 --1.3323785642027237 -0.7609793081471953 --1.2318809085903548 --0.7707608280384581 -0.9186987451770873 --0.14131099896232338 --0.816649281163807 -0.564815904142198 -1.5604411094457982 -0.08337902706643247 --1.6746947997981043 -0.9171704134430004 -1.158947406918193 --0.2747146869580868 -0.4062827336200283 -0.029797738742464545 -0.7321450687864377 --0.17455294499781157 --0.3542353177520916 -1.6811228595417183 -0.42551599206959617 --1.2522400884829021 --0.8298186338947764 -0.5947498557270252 -0.39648641146883923 --0.5111126482838817 -1.1405343727681667 --0.06244476785533545 -0.40695111381588506 -0.21687504488476078 --0.952824931413324 -1.7512471122233917 --0.07039247160302423 --1.8729285283745523 --0.6110050454608675 -1.1949061680100794 -0.1850189954512406 -0.6496266472735989 --1.0075239579736424 -0.7241368930377922 --0.7440918571813155 -1.4945359276160155 --0.08758570910656013 --0.385732669836716 -0.571541510689419 --0.9104097204983066 -0.5479835341491675 --0.774294315903661 -0.07074155446303 -0.652092647221489 -0.09947636319799796 -1.287025442098847 --0.09711895427369917 -0.12206806382198775 -0.007653999476922058 -0.7742417257944326 --0.6677078008635075 -0.04910479081207398 --0.2654631869035983 -0.28459804173164815 -0.26760857732680027 --0.35588540183865913 -1.7852609437812157 -0.9015749320471023 --0.38690174420376905 --1.4209173994992987 -1.6431061022320403 --0.601021820420258 --0.3340442861707907 -1.3030014097282159 -2.012845418375057 --0.2706704964220137 -0.3827734568336281 -0.08463952445564758 -0.18709279501589543 -1.2069812004960707 -0.8292406226551048 --0.30270364852926424 -0.9359654318133787 --0.6632492566785353 --0.2742431678586674 -1.2460949934586518 -0.14305417106784452 --0.4962980620234409 -0.77049047101217 --0.6655255259274556 -0.13565639092425152 -0.7948112050579095 -0.9139603042329333 -0.009327354165272148 --0.043337796662154496 --1.422389109420895 -1.044088841105824 --0.5280984754559914 --1.1763606607962553 -0.7564768052470082 --1.3936502712963752 -0.2787541727130139 --1.880397259787794 -0.8809366707634322 -0.8257624475219487 -1.2222645408869952 --0.8790770874205558 --1.433055639685224 --0.1910973352551063 --0.2046314245017654 -0.5667255448665356 -0.34709958519989453 -0.08596986192496735 --0.4929929280810407 --1.8012623476512184 -0.13242446431751065 -0.12648301803334105 -0.6863327441790421 -0.5083857836277826 --0.03443467321161607 --0.1578818449522672 --0.8489472808510677 --0.7171209622281727 -0.5693855826728692 --0.40314934088855203 -0.013866219748188116 -0.2711759544764409 --0.5856601116366204 --0.1844221049307043 --0.5379011426147887 --0.1417412674110042 --0.5053300939984765 -0.065703136683397 -0.9667170329036371 --0.056346310632559446 --2.5835749111568758 -0.9981297313768168 --1.3662468250870583 --0.23892310405704384 --1.0335304510786374 -0.8758087681409604 --0.3797624419162271 --0.2885202248548758 -0.5575275407101207 -0.44693131943009645 --0.3384503181181652 -0.5917220713038988 --1.9242587725820015 --0.7453247055565434 -1.386286740396816 -0.016152021391741392 --1.3991343098908582 -1.5657773707366864 -1.2789746823764592 --0.5333579187359456 -1.184274806961843 -1.027525390175722 --0.5503806043088608 -0.9903010985578129 --0.3324483166143728 --0.39115571204580407 -1.326074245601694 -0.2248406512710537 -0.4632298649524107 --1.7460053137807998 --0.3293343698704611 -1.243419784244962 --0.008275759654759185 --2.081137497899501 --0.7572874260240572 --0.10201162097239916 -0.23658554755696629 -0.2367464392219497 --0.34637348384604955 --0.013586182781682669 -0.16597104487302872 --0.04914420584019637 -0.09828603823315034 -1.8854507798714197 -0.10777917327512224 --0.6738404997048837 --0.7680407766588823 --1.309655523349515 --1.2829986285123134 -0.5181524963791172 -0.08067966347604635 -0.30851361526874355 --0.17469757482608553 --1.0607384824165724 --0.2938861509099088 --1.7240002342625733 -1.1811808238556356 --0.7088014861653911 -0.4470194201506047 -1.094315282559071 --1.2246097591670146 --1.4838889291786297 -1.180791465448753 --0.684798180995933 -0.94079313289729 --1.1483550333549066 -0.7751708272384383 -0.07132549724409327 --0.1590265690942234 -0.14913922240929028 --0.24619649888403208 --0.27502510427944454 --0.008793053415794238 -0.7399089067800789 --0.28657661509950666 --0.13984443188579632 -0.08791623323908067 -0.2681852802911909 --0.9827782202364358 --0.3359017702888381 --0.208718933886847 --0.3455715743209142 -0.11994873229542556 --1.5489361364765941 -0.10958501772147075 --2.0670301278582888 -0.3494580712911097 -0.4885383090528309 --0.16566687987739312 --1.0233557977389482 -0.578888558959327 --0.8015574212890736 -2.2112278901050546 -0.2510090183678587 --2.1280049155528253 --0.010874002723935969 --0.6223649735533436 -1.90789471793292 --1.5933980265900352 -0.8333587463167897 -0.4141118135921097 -0.04714753213226683 --0.13728567350506418 -1.2822788742773112 -0.6808594053122075 --0.9275678261457075 --0.5729600819905 -1.4422724219140568 -1.7453486226516026 --2.2992401401389335 --0.252876595361386 --2.0527455159906083 --0.91021137367988 --0.4900250460297751 -0.10004296915101794 --0.8881873260246201 --0.0706814963359083 -1.2280142297303442 -0.9950123475072179 --1.2388921564623825 -0.8372550763271961 -0.20024820785688516 -0.7107714981934395 -1.0990543893215658 -0.7082923857439706 --0.2710532694429774 --1.1746173424249988 --1.0966594345927347 --0.6441853577446456 --0.008307185132163686 -0.34554826263174293 -0.6467089421430207 -3.010891891777311 -0.2921821514493229 --0.03502875703150027 -0.27377788104870165 --1.4259523536990717 --0.35056339720945834 --0.20690435078591105 --0.25982044360783224 --1.4414815519648454 --0.9302307211870591 --0.8865310864303251 -0.32056044763792896 -0.3771703128992299 -0.3353582139067703 --0.22100641817643715 -1.317088627097278 --0.14291446769626323 --0.2911598427365065 -0.052118439755374224 --0.3272190617186634 -0.1280455311849131 -1.10815284302243 --1.8074762881656108 --0.10057296790210377 --3.4415542978813547 --0.8201119088964105 --1.9194430712321644 -0.20949946470621506 --0.3907235273437125 --0.5117783572370261 -0.051594551931257275 --1.3583866324908818 -1.2197885700511697 -0.08636932875078222 --1.1535917617035607 -0.498640858349076 -0.8612444620709948 --1.3087081893448849 -0.21944447752186302 --2.138725968143911 -0.4124364234468568 --0.44007736938526715 --0.4389288613640376 --0.8255124058826518 --0.8189244176333665 --0.862636738627609 --0.4414239976731418 --1.6070570610398462 -0.33793040291531856 --1.144021325042781 -0.8035586501017156 --0.18938452939695583 -0.27784221865621594 --1.9337328401743084 -1.1405002578762407 --0.06145013583137703 -2.307951480864874 -0.9215153234762412 --1.7796913778730095 --0.6722357407305201 --0.7767884859126503 --1.0592411674596414 -0.040487610014972156 --0.13544494462702295 -0.41115430429036587 -0.427785203144673 --0.3237686595036989 --1.5474078945286716 -0.33630339129749687 --0.8784098743045324 -0.5145957560751951 -1.1090702144730993 --0.34979347581675324 --0.4350275850972345 --0.11766273229218846 -1.5969845322297511 --0.6762675827444444 --0.934615203488782 -0.013189846619497627 -0.35130468642669854 --2.0888593010156713 -0.9669343125704173 -1.123237903107459 --0.5641803091936398 -0.17944828052300607 -0.47989206864886325 -1.8167308064334649 --1.2123649145042212 --0.09727051002141271 -0.44933588540502334 --0.004052915440751743 -0.6211033883358219 --0.339586752226554 -0.22852043699133368 --0.12366545208460412 --1.4941976439834777 -1.1144153912808241 --0.8117515329207833 --0.006600656322849777 --0.911449582276415 --0.1970542516833357 --1.5773296199084463 -0.6473312231917367 --1.1612811107443375 --0.4269439022565518 --0.19790568036008374 --0.8745733509640718 --0.05356460477056014 --0.42368988512183425 --0.1125250083390585 -0.976708322535813 --0.896001261884184 --0.38117790167614 -0.8383877728460322 -0.9342249064356652 --0.08356276621202124 -0.07079440698740205 -1.3343692852146958 -1.3627557555707643 --0.7192126967348311 --1.3519127592733777 --1.2429608292465237 --0.1875985748986248 --1.1617354089135938 --0.1697555134483924 --0.1243622968998916 -0.12517791926700395 --1.9591525701731223 --1.08246974839102 -1.038820816372179 --0.6061303638984916 --0.47349963863934746 -1.5394930777432776 --0.10413525022499498 -0.7623792903226239 --0.25818240631093686 --2.2640068099962254 -0.921865261091533 --0.9049952418678532 --0.24756178146780944 --0.2576445173119199 -0.5688554152438234 --1.9098600220600488 --0.8060022848762642 -1.072785485316539 --0.026055677701311473 -1.4216528126872625 -0.6218001196292738 --0.14982471247534537 --0.5582969775345794 -1.1558827342757692 -2.1045570751869063 --1.114393689562794 --0.9858950484868236 -0.8774601776740754 -2.1317420757567276 --1.9593229538821915 -0.3279394842739123 -0.11407153800971796 -0.39809921541027293 --0.3436276206844289 --0.3277389986209569 --0.32314871485130237 --1.2598525755062289 -0.6328221094042765 --1.396197744727086 -1.9983498084598557 -0.16781044250152802 -0.05494395339550617 -0.03594542124931304 -1.198315819177688 -1.8472059871824271 -0.9563597077686631 -1.735024527937998 --0.6777124987437906 --1.680417412843813 -1.3305117460339393 -0.28333442049005586 -1.0500967012978444 -0.1398406854256083 --0.9968280265456639 --1.2965996551657015 --0.17779733887007673 -1.896573455782084 -1.3442729976823895 -1.0913231301340724 -2.0203850841527236 --0.3659565263170161 --0.0063779292099260245 --0.12535893515907354 --0.3821276711045155 -1.0097217252557729 --2.0642570719752626 -0.41122973233862586 --0.17021536901715423 -1.007342101355253 --1.2012302063863554 -0.5169433657498648 -0.0347563250940406 -1.445412336846617 -1.1140887675500377 --1.1426426337063376 -0.004615960302621853 -0.5885618145775677 --1.2012176033981599 --1.8307868343795377 -0.04631732816495078 --0.2292938909419133 --0.6464889408443857 --0.1638485509950092 --0.2552915237661425 --1.9278394568679982 -0.691826350883393 -0.48172194728116885 -0.6697705097626635 -0.5484672953600038 -0.9357314492450692 --1.4842195739411967 -0.21519876020096523 -2.6754858069835454 -0.16451813635838633 --0.7900084214488332 -0.6645352840631533 --0.6316536806127673 --0.1212228481536597 -1.6466921694202434 -0.5801003543835453 -0.4014515016251594 -0.6327510327300404 --0.037917885352793564 -0.4239893267299969 --0.058189083443553946 --1.0993369128929247 --0.7460988458178807 --1.2434888683778058 --0.25272789896786463 --1.631218484595444 --1.1811884013051515 -0.5454328690338577 -0.1387045459791588 --0.13860248317523222 --0.7530022144586118 --0.5533387010991799 -0.11049572305570758 --0.02022515561803073 -1.3195261243673109 -1.0325429239742898 -0.07956041697639747 -1.1442074808068596 -1.1356045828779555 -1.290804816153926 --0.5945959912677873 -0.3967566879785804 --1.381664220363633 -0.6083000482106259 -1.4459942310108327 -0.4036122279308628 --0.15293184366031815 -0.2806864433015451 -1.0844403543546872 -0.6795872306620775 --0.2440004844931496 -1.0500210443834768 --0.4141491057455126 --0.035151782005314144 --0.3757741212997775 -1.2274054676591872 -0.6565494498931547 -1.5644151016921612 -0.22136841637725815 -0.48125633090903597 -0.2355229866514881 -0.761957854694334 -1.1656522932049898 -0.3017942173312101 --0.3002286322334522 -0.1358687861531012 -2.827525088265572 -0.8518947932656686 -0.8593562156364222 -0.7964791290880504 --0.7333607435420759 -0.04677723710926133 --1.0743650211662865 --0.2638940578302981 -0.09777636208022095 -0.028342454345023277 -1.305743536868336 --1.3054943147642777 --1.192961093835477 -0.9082780980638593 -0.07558319076822811 --0.3244253579460616 -0.3663291016073873 --0.5213460890554882 -0.5115704600894838 -1.366803985869522 --0.3656584530096092 --1.1315753422985881 --0.9333108441429581 -1.9952896758687428 -2.25320989842466 --0.3562352654566381 --0.5275429553499136 -0.9825522672997292 --0.0032950491663891494 --2.181208482551855 --0.0375046925969854 --0.3687179128456637 --0.10505570951453162 -0.3383058194948924 -0.46797104178396143 -0.8755030129132962 -0.09324309500214131 -0.7946900031828841 --0.0627351739777834 -2.005708741283283 --0.10896575115920325 -0.2151369884022833 --2.082698325673437 --1.697665943411538 -0.0738271845183902 --0.3874289437886409 --0.8582513400455136 -0.23315092695351256 --0.5643460062248356 -0.2828065725239217 --0.16183687282785733 -0.3567878849278273 --0.32201101406796095 --0.3656245494599821 -0.9857587486877623 --0.7091189911414182 --0.1451447174403375 -0.5848732698953623 -0.9633837350277986 --0.14066535136162556 -1.5711150257054016 --0.7444908024519588 -1.551834620851568 --0.4618384269915077 -0.6405299620331172 --1.7242300774519137 --0.7315070690646353 -0.8519811206691469 -0.7459641758743644 --3.1097723152729206 --0.39774203945965103 -0.29814301651155595 -1.2782796063924955 -0.9024805965912568 --0.9515129268770556 -0.6049268501821583 --0.5923459972253741 --0.22984854947160982 -1.8593799676075788 -0.23916485757642314 --2.1323022556114597 --0.8183344127650178 --1.3246482055374924 --0.8772087720738355 -1.4954007337634125 --0.5100765626080467 --0.8695062725822761 --0.9993209465396008 --1.1037539498271531 -2.2202941539262184 --1.2425837114772154 --0.016617847874507322 --0.2217152645361393 -0.1417459041952802 -1.5717281082068422 -1.256623429457858 --0.7413409940871909 --0.14342918115212686 --1.3800018640199967 -0.0825981905375412 -1.5748775008726459 -0.10726920782199678 --0.6876007126807028 --0.0661944634454627 --1.5004068201999292 --0.9489736906197169 -0.3154581427668352 -1.1519827999977026 -0.8854140536245411 --0.3273069316993156 --0.41088896646181067 -1.3628866078668898 --0.18315904569683478 -1.587204327128942 -0.6305186586598175 -0.8920369219944853 -0.7305817907465232 -1.7293757313680311 -2.346195267361597 --0.8635504176806483 -1.2360313306904906 -0.01625454692879126 --0.15508841242943475 --1.584975901407577 --0.6808109111552966 --1.931177690032966 --0.8966136712838366 --0.61174389935351 --1.0313143184455171 --0.8562376472575614 -0.14711534373933033 --0.9866979664826053 -0.3327763878306401 --0.534029870297982 -0.5463498651503818 --0.4423251233961326 --1.8057189308475958 --1.42905352795367 -2.1004725712350525 -0.12574336863385308 -1.4640177695093215 -0.143961881283978 -0.3252052910071897 --0.40666279187014265 -0.5182825342382257 --0.6496430811881054 -0.9644752001301958 -0.8192475048312813 -0.74630192689509 -0.8340337457250151 -0.634910929722004 --0.029832919862210018 -1.3790695005498512 -1.2115180859497015 --0.1983124492158286 -1.7464114586544452 -1.653495337168298 --1.266894326498232 -0.2691848591671484 --0.8092321797858131 --0.35789965146856795 --0.2763626614989367 -0.7812459925400954 -0.3065979558260265 --0.15394079244020473 -0.7333008628265559 --1.1557165382476287 -0.517539343364062 --1.7036920595328675 -0.141641757074266 -0.3649529486709109 -0.23068829650235087 --1.7713815095837298 --0.11742072624233177 -0.20764472941452278 -1.2794829615725334 -1.0317766235194872 -0.4632372588192488 --0.8909941622786418 --0.4381142608724338 --2.8502054353855257 --0.3392509451608975 -0.0972089135284768 -0.3057832351657568 -0.8919887985051012 --0.9563323633726607 -2.6955204129659247 -0.32995470013513195 -0.17169523054727828 --0.021081854375438636 -0.7534859384476589 --0.7124339795612938 --0.055677658493190244 -0.25280823804902575 -1.3758729882789766 -0.42290080669850283 --0.6667730881021867 -1.990612813677669 -2.456364586703174 --1.3998386095271695 -1.4782621975806873 -0.6127788181724009 --0.4090154656240048 --0.27982639001691867 --0.0099088417838738 --0.7358264698308885 -1.119676949389626 --1.4684793172920512 --1.0576018142157775 -0.5171657989753364 --0.009202043995137226 --0.8848625045825372 -1.4904687068705713 --0.1697661694329375 --0.9320839497164698 --1.2644194326983649 --0.6576429685661461 -0.20623662861693737 --0.43495569791006744 --1.932066838974221 --0.44505252172554466 --0.3583232759736009 --1.9254672246899855 --0.8724359676147347 -1.589760249554125 -0.36405882936924505 --0.12852453245000436 -0.4169474317234193 -0.2414853943652896 --0.20073880062567762 --0.8877191587468489 -0.17919294909592276 -1.1887749476342562 -0.651759410281035 --1.6641658523742826 --0.7467992967533651 --0.7723982685534709 --0.34927041373788464 --1.2458125867665202 --0.9768364026828801 -0.5883793107186307 --0.012477670009218924 -0.9464758567123625 --0.9988802440571303 -0.4936882611921993 --0.806603225287537 -0.3883402426538945 --0.6866976453602073 --0.8181547856005589 --0.5338553429429287 --1.3854122700564608 --0.21051281596345173 --0.5307320339687237 --2.2798836269682523 --1.1520443039046282 -0.5881173756210868 -2.0041313211407927 -1.2564102243602258 -2.1832427247636126 --0.053370440752820186 --1.719852810695205 --0.6099869189874894 --1.2035170056409816 -1.6893010365732157 --0.2288261901142873 -1.3198300481848249 -0.635864034185416 --0.5046171942524178 -0.7549413168844515 --0.8764755589900212 --0.4963034987712419 -1.2965904907644519 --0.15119617941462768 --0.46323833399079806 --0.49836005822162815 --0.694859279708552 --0.4743052385835143 --0.45654745201110736 --0.48009121392759185 -1.1549514396547416 -1.08474296976688 -0.19147458495226605 --0.32090095835308136 -1.7674658750317311 --1.5946016390165159 --0.5760514444854296 --0.932069875023682 -0.1511166056229354 --0.41148478655126736 -0.42550618082234226 --0.4616212799166992 --0.36077543467546824 --0.2901198537172946 --0.300670181341268 -0.6109911141609956 --1.0711691976684914 -0.5891771574977166 -0.3130040288536108 --2.5513555614463166 --1.106557084452566 --0.6900095459064572 -0.4107570512660262 -0.1244172439037572 -0.9770885040092293 --0.23969063696119533 -0.06424672009693062 --1.7620087224405716 --0.8607799406973065 --1.820345347433715 -1.661581945206168 --0.055008346056563795 --0.36749407551853064 -0.02577492148663036 -1.0791631438622178 --0.9901467311588696 --1.3225381731706771 -1.562096684918173 -2.3562814773640532 --0.37569078618221513 -0.44368922755126017 --0.7276955241185129 -0.7082340053186399 -0.3324836152505837 --0.2702126100816498 --0.31724157251189994 -1.5204524977050988 --0.529616624966135 -0.42948887695341154 --0.9627431386152161 -0.5056631158602738 -0.41974545290552717 -0.5614658710373748 -0.6525475411694415 -1.1128292149261865 --0.7771901270337565 -0.23181901143151573 --1.2623171014610597 --0.5840919395073234 --0.5738073032875789 --1.5276523230288972 --0.8549237644693024 -0.24396681464274403 -0.7707964473728983 --0.28886824221022955 -0.333734480969121 --0.664563299643994 --0.0778835153128317 --1.3125601570588765 --0.06671243697443277 -0.5574223884953711 --0.4378039257797523 --0.8278589914862937 --0.18502920251434737 -0.8664209379769165 --0.4653173558423566 -1.2351198672746724 --1.6771863999005858 -0.7153371980971883 -0.6280670793057901 -0.6278869192644522 --1.9118661033080386 --0.5578349856148482 -0.03989257456969964 --1.061334968788941 --1.072285440465355 -1.2003751303009609 -0.8712195429897696 --0.24273241762850659 --1.6930781978906544 --2.4324108141610794 -1.129053390952387 -2.475327389761387 --0.29463525211573055 -0.3963807086366613 --0.21670534742264613 --0.39485732392368056 --1.7217344233502554 -0.38110678582851953 -0.26361482190775604 -1.1946261787277526 -0.11568952593918556 --0.16318878240227383 --0.7021776784544677 --0.466567021937305 --0.48207597483119646 --1.122082417895709 -1.1665892716569788 --1.4609617269290058 --1.3032403535661998 --1.4585502817030123 -0.7010986512485512 -0.30541401943254315 -0.8546329253094768 -0.6746431837051056 --1.531318372819688 -0.9266417519741567 -1.0033431150880425 --0.19773159290012776 --1.4983423393404063 --0.724217766766526 -2.1178968516393324 --1.5606893290453259 -0.6684122170707948 --0.9303377158924372 --0.4184451038060462 -1.6565976529994524 --0.16404728219848497 --1.2026773573987826 --1.3900894390606882 -1.1134060303473532 --0.038030585127992504 -3.5741551185096174 -1.20640684381867 -1.358374455340519 --1.5929351526624418 -0.33396358119776853 --0.01446675733834003 -0.8104563849384605 --0.6455896647236709 -0.725363475223454 -1.5604624311328696 -1.0274443304214373 -0.24989583702912707 --0.5410675453695454 --2.212875965307361 --0.49645567406481517 --0.43042467202185014 --0.8537440800974431 --0.5913794680599281 --0.11513977139293738 -0.6004340059653632 --0.9841345011864893 -0.9814449824870186 --0.7928160857564169 --0.7794993816987638 --0.6564079560155496 --1.833167023456407 --0.29854404777222215 --0.2953862256120616 --0.47036798791964485 -0.16054455336251694 --0.6525690786674057 --0.3341109549412459 -1.0535680838113257 --0.3506551114875009 -0.6635511761093161 -1.9031541350707668 --1.80868640442989 --0.42269431711910205 -0.47514022846283854 --0.7704413816486696 -0.4246779495309443 --0.80381759064959 -1.5384735251369388 -0.7319443910253504 -1.5653969283039064 --0.12957764881629483 --0.6535476577440512 --1.0282620159610605 -0.794023750161463 -0.32903277655909713 --0.6935275481330802 -0.5658343993464183 -1.526386773107786 -0.21981317484757495 --1.856033173327429 --0.4093717218224075 -0.40621490520170006 -0.41345438117644645 -0.804987014452586 -1.2704105208347896 -0.08497020611229168 --1.4480935702048126 -0.34101297156520216 -0.31820089610063357 --0.5926927785827375 --1.237411886926667 -1.4733195030858919 -1.5518348053703752 --1.0750033983855591 -0.13336577572107575 --1.5064491607635502 -1.292053557281415 --0.7627986136688368 -0.011090464831910266 --0.08226015884628889 -0.2840267601839582 --0.985272405760371 --1.3804431016289676 --1.9238069584052666 -1.1418042799901604 -1.0132991483210256 -0.950721981496851 --0.8346918245839225 -0.3772288299127995 -0.8774021190724494 --1.599531405654726 -3.514017655428472e-5 -0.522249567874496 --0.240620787658427 -0.3539513309947286 -1.1156160634540129 -0.28046124567253966 -0.8935939783790683 -0.39902722481539005 --0.9191521296298611 -0.9989755941977486 --1.696582121079576 --0.09152893570694039 -0.6239273683555587 -1.287774073578901 -1.312700751231936 --0.05495976912374488 -0.3888738747288115 -0.562743470885439 -0.6889806440185503 -0.5571396031948546 --0.5614975428753597 -0.06725347502766266 --0.8785829177053005 --1.505335598865072 -0.6023601185055412 --0.533771124826001 --0.9804932785250775 --1.240291381483816 -1.1909584089523118 --2.135607903513005 --0.7661793041649357 --0.5011577862246168 --0.44394295393966526 --2.7049348991673146 -0.699236511857195 -2.0431720485220195 -1.6733148572047607 -0.29944159218049776 -0.13083122771643244 --0.8930679938052773 -0.8218169911447607 -2.4470097243136917 -0.704858064109281 --0.8194897180972954 --1.5559778906631503 --0.6440596482639649 -0.2087448862031555 -0.6616244399907686 -2.2475056707434495 --0.1367823278290306 --0.8649848732953992 -0.3222590773860175 --0.21418828790023625 -0.07620352087497045 -1.1435988136224176 -0.38473012214549773 -2.6544987134979148 -0.0462756648458572 --0.6468128773742984 -0.020896128135325567 --0.4660665243200836 --0.33714044155289125 -0.37854012075321636 -0.5850208677665254 --0.6683637694843219 -0.34200788917731434 --1.2840128454480801 -0.2510217654705398 --1.5791137315543622 -0.13472678611417405 --1.600449548493068 --0.40504910253649634 -1.6687027288835417 --0.07920876206923858 -0.4417854737556343 --1.3681980405477654 -0.9316102635256841 -0.769357756014884 -0.5968525964014607 -1.0165868077453017 --0.9836687847057923 -0.08476598109804931 --1.5060890876895365 --1.158037906346835 --0.5155546521790144 -1.1680785153418594 --1.3884246436783776 --0.8481686077146681 -0.09647085904425344 -1.2668655416993024 --1.7829459523262787 -0.6344084874980522 -0.1560292458070525 -0.18193094595061515 --1.7271466674379286 --1.0066596785722088 --0.3493254779403868 --1.2310787394599167 -0.011112650869298898 -1.7671977438507662 --0.3362329548876071 --1.6478468369985337 -0.9096537440878432 --0.4510189231886796 --0.08837930297857648 --2.327703670758823 --0.17393360219625656 --0.5860255596222602 --0.4245355051226906 -0.8897415979203463 --0.14089461509492585 -0.8464582502750169 -0.3416720528080186 --0.29304918068573754 -1.9073502980602792 -0.6787606529695343 --0.45046117306662836 --0.8019546634883649 -1.9514609111856516 --0.0862192159913759 --0.15748146340064711 -1.1327927523173345 -0.38471603236290647 -1.6036553844234005 --0.693410158890986 --0.8047922256728556 -1.5438077758105246 --0.4926215344717372 --0.9590978797220373 -1.1160765360171625 --1.4415957946490376 --1.1456111279005148 --0.6115647918722384 --0.09507934938667115 -0.3519938418318742 --0.8556702875915116 -0.2514897707967486 -0.5340047264255934 --0.21157351854450462 -0.8114854933376514 --0.12636724867970286 -1.7634273608389734 --0.5678712960370836 --0.6271917805514231 -0.621181899961541 --0.6838347780388114 -0.6076702881174159 --0.403544089454889 --0.5516735173532014 --0.9214735307671301 -0.7600483677113976 -0.38103291278648693 --1.045807985345058 -0.09332209029749536 -0.8552703469213039 -1.1393095221188636 --0.6491229906741436 -0.9762742726045938 --0.9563699106394514 --1.0849046301433658 -1.3046002594467492 --0.10357165785076118 -0.6870998156255447 --0.3636846101093243 -1.3277501381936254 -1.5166188437713464 --1.821668360785236 --0.6805832034778571 -0.712955813527675 --0.18799943179587483 -0.9120523385442216 --1.436020582256049 --0.5355005137183374 --0.7434379785876871 --0.7610855124493731 --2.093791627356479 -1.0991792743237543 -0.679371509445112 -0.10663949361590475 -0.9815379895996201 -0.564144548279039 --2.8324576305461684 -0.3224188616049978 --1.6909868029673325 --0.47317299407513336 --2.3907602546211404 -0.562748096841523 --0.5226848147574245 --0.7711561093946783 -1.7536206798770544 -0.948498450587021 -0.993040102939215 -1.4526079210647254 -1.0983126299639876 -0.527459020628018 -0.021943549561745688 -1.6942368234928238 --0.12298469480384332 -0.19393756533356274 -0.36158490144100164 --0.20493461981072142 --0.19144338676103737 --1.1460997312249335 -0.020659644432366973 -0.4773794759059874 --1.1262696247828017 --0.614825392860953 --0.9375627530120092 --0.6171675287734767 --0.860485825260165 -0.7489718609992798 --0.47799147924924007 -0.888323107481252 --0.8384073947640155 -1.3619706001679694 --0.784484906753322 -0.704392721724927 --1.15804303205052 --0.8237566779224069 -0.3127088524313526 -1.63396543424381 --2.0942566064706427 -0.7990245770157385 -1.1513322082329691 --0.2143091007218633 --0.9937430601904778 -0.9529546047547539 -0.030495912796019046 -0.25515267575275974 --1.4087645318978461 -0.2379880555110393 -0.10142316285523145 --0.8647258369009545 -1.0369546887070848 --1.497173530547005 --1.3469206438359287 -0.036156657205052005 -1.3816017701575396 --1.7446186534958243 --1.8892505456225 --0.47394609536097343 --1.968117893860401 --1.11683832533932 --0.28113329793524094 -0.9582888457382356 --0.609882295313585 -1.6683071279792225 --0.14919295472594676 --0.07076281247415853 -1.1167011312690593 --0.626154515774747 --0.33496209396636645 --0.21338379130729815 -0.7168214518875867 --0.4293730707971 -1.1798066965138878 --0.023104691916207724 --0.0059678929438510935 -0.6103223682816682 -0.7476710289723612 -0.2304907825631042 --0.5972480649170079 --0.9825717543474954 -0.9877564308510656 -2.5857811276220137 --0.9768365007059496 --0.8262858920091164 --0.04273258648338553 --0.6156044882011736 --0.02564302086962441 -1.1319222326555922 --0.6242127203107799 --0.6555733761396627 --0.6139993844976702 --0.8588030297305024 --0.4366509660920625 -0.8808580297511948 --0.9022771831944757 -2.319121687792364 -0.16360530770378473 -0.47361115787791236 -0.9494945424881192 --2.503693382375122 --0.2810614240782613 -0.49233963264557584 -1.5371257673203431 -0.5473195829349932 --0.15868379081042372 --1.1657186125867884 --0.4798848335877919 --0.4163813970088726 -2.6585347170033775 --1.2956908738831456 -1.2635081253659286 --0.21283101111929348 -0.23297204556096532 -0.18485280221962921 --0.5599760046032609 -1.2484166767129794 -0.2108301619143682 -0.6276896544446275 -0.18133382516431232 --1.4729000385295365 -0.3124741750559803 -0.956537091294731 --0.5613194419003515 -0.3971696471927891 --1.6515221902974306 --0.6223183337243838 -0.5721547928451922 -1.4903254351993922 -1.6893865359428466 -0.6275595862562128 -0.5027809832427489 -0.004723447372332709 --0.4512777448365468 -0.7622274211280659 -1.3182706859775883 -1.2114656461914315 -0.27418322125232164 -0.8563922643340052 -0.19760406822977475 --0.34301604069866853 --0.20342740522727415 -1.9863226374478153 -0.9053664207969161 -0.41648599176626977 --0.6234260154228374 -0.5482388068356553 -0.18329072203132538 --0.9687394253369782 --0.8373761466054136 -0.787727961515909 -0.7173767141505779 --0.5405108813159795 -0.9090508581993406 --0.15512079816076513 --0.05470263728352529 -0.8961634407244756 --2.362530409562781 --0.12842965264041686 -1.078087602225711 -0.03911055367559944 --0.31279323618322674 --0.20859757137341364 --0.17702431529978202 -0.9217420574746854 --1.731033114437235 -0.008205744533876928 --0.09408686993819919 --0.42282462113639147 --2.395386934572363 -0.926566805671753 -0.5482249350715632 -0.8436245105592839 -0.8305463002241501 --1.533391109627643 --0.09390278273183632 -1.4195536777726387 -1.5312893559487915 -1.0638250009431225 --1.3377760477097786 -0.7346447785164874 -0.03234641466004456 -0.09503653353397519 --1.0916656487838219 -1.11199459927342 -1.1083665676382555 --0.6256827483384938 -1.826385996889206 --0.663876176421725 -0.8339263836150539 --1.2865277563116275 --0.4587283386799789 -0.8957266798801612 --1.0781216754567908 -0.24962913332832787 --1.2193802646209013 --1.098075306353475 --0.45636804419779486 -0.5567689957540641 -0.4800565538666879 --1.01818173476039 -0.5254567079400588 -0.778103883970296 --0.3457964912182587 -0.509254101956751 --0.45255539502814335 -0.4714990976794031 -0.6678758228912495 -0.8601275556380038 --1.6727475186379788 -0.5434967821698005 --1.835100469168858 --1.2007504413191294 --0.0342255665921219 --0.31053858123740546 --0.6817218474098934 --1.2073963316992935 --0.03332861033898519 -0.3127928503649422 -0.1678326067163351 -0.0002636361999722178 -0.4735380638851554 -1.1389121894468062 --0.9459664669058974 -1.3295804556605237 --0.043777972506393 --0.6204030422257628 --0.25205691400501723 --0.3633404098224212 -1.4076459848918652 --1.1471209802728284 --0.8668199664363555 --1.2828899580408073 --0.4092873156362488 --0.4574265642369392 --1.0256987902816561 --0.6317941430152217 --1.9070056129219417 -1.4009057886397733 -0.06690516785212774 -0.6986100638303568 --0.26226123927954503 -0.2949935007667972 --1.4528123871214347 --1.8557291313460287 -1.974993389391563 --1.0950969327333162 --1.63369266149386 -0.7550562029935218 -0.6878840898515025 --0.902694546172668 --0.8080142439471146 --0.4208510937292994 -2.0155068451270712 --0.11783329945591198 -0.38931951029573664 --0.308354164682675 --0.09656030013234448 -0.9237056877797205 -0.840809214580702 -0.36332090648879917 --0.025222223829684306 -0.8504563142408944 -1.2145935358864905 -0.07026170888909218 -0.13680829660132826 --0.3587975680188212 --0.9767892566280987 --1.4662492690771551 --2.5089443452335063 --2.191926213725547 --1.313896220209698 -0.24426005956983443 -0.7617072003008711 --2.430230214329687 --1.904619214707371 -0.11493152153875212 -1.1762267255680696 -0.2547832977262449 --1.4479803820323478 -0.9324343055975388 -0.903734737053201 --0.3038328193079991 -0.7561661977258007 --1.0718072028056673 -1.987963264806513 -0.5082148950087356 --0.44256742258471404 -0.2968042180445433 -0.6859915812307428 -0.5620848487830604 --1.4001851174563993 -2.223426992400087 -1.718102084568921 -1.0692877299942414 -0.9627005959927772 -0.08561093083461861 -0.4991455770223168 -0.5248329188131267 --0.7711410294995242 --2.004046241885755 --0.6392008602502105 -1.246974285710797 --1.5390537367073218 -1.6347567490782888 -0.9499547596168568 -1.3535083492472049 -1.8912708935885325 -1.6334339900175536 --0.6533238322852924 -1.8553320535161497 -1.325726230787082 --1.2582310892261928 -0.30392590300916583 -0.600222261842682 --2.876613665330885 --0.8275008919870924 -0.10134528798040286 -1.54423870392233 --1.3141939486841512 -1.013790854941237 -3.332272778192461 --0.13062441626729066 -1.0513245612461797 --1.7805107229108565 -1.2335644301367412 --0.6751840738142341 --0.8966694496355763 --1.5756104385257568 -0.365368484160185 --0.44373059802193626 -0.20435246983349029 --0.12200221023928502 --0.030048255839828817 --0.2097826297577462 -0.5711051713465297 --0.8277049765614327 --1.9063196966185887 -1.2942967618806365 --0.4350253727736468 -1.3577246879784188 --1.06458113261311 --1.6385291866117178 --0.7995775428729079 --0.7062829665462793 --0.643145605395561 --0.48754241525058123 -0.4534064494220641 --0.25924026707493647 -1.7341739032934798 -0.9472613840335911 --0.44019158971026034 --1.8279654214521281 --1.4444913770934342 --0.3805129093964207 --1.2155656358845133 --0.4250306666856521 -1.9218767291293488 --1.347132701736794 -0.25614178973845636 --0.2655750040336984 -1.1706653930817863 -1.4966497813463964 -0.9444570028616234 -0.9701648042542875 -0.2578481234082459 -2.559578124286476 --0.6035414104171429 --0.15080705262986452 -0.12214103350587419 -1.3969361778565674 --2.289347507024187 --0.38052456936461354 --1.8900712270320832 -0.7563610661062725 --2.6709001507400547 -1.0950679881571754 -0.7511571715689622 --0.3056552554874846 -1.515238053741901 -1.837571204133474 --0.5482595923955964 -0.08447532260473994 -0.10389937937948897 --0.4146502965086558 --2.490169848749004 --0.9495551482995164 --0.04634687013368159 --0.9246441002018648 --0.4338036788913997 --0.027095975559330535 -0.4093290912361017 --0.08613558211361165 -2.4586810606097718 -0.12107523206047766 -0.8426837050885917 --0.03869483483866185 --0.42625355806758947 --0.8079392709733735 --0.06698299867048935 -0.18141648896768006 --0.5218988341686372 --0.4624548963138885 -1.549490626693686 --0.07233521441753399 --0.08743564969501626 -1.0237961054054896 -2.0777584212953166 -0.44001840939595577 -0.129115560166519 --0.02740641539422843 -2.116863581696862 -0.3544203427931101 --0.7466781732090512 --0.7063625487498376 --0.8617191196237832 --0.8903653057531074 -0.39167885198399977 -0.7276786666224035 -0.778520465561247 --2.7433523546532377 --0.28806361009623865 -1.0445718183802428 --1.7558737610177884 --1.0928886187781337 -0.1468239677290766 --0.8233326754151099 --1.3164425087961273 --1.6904695011322328 --0.39141875402421095 --2.7561757207069717 -0.5246934135908342 --0.835511479822684 -0.5794592984400174 -0.5129130715978336 --1.2416776395442 -0.471199848019586 -0.6921160873857087 -0.19823030533049016 -0.3871081456971488 -0.5370721413317152 --0.6513938454619242 -0.20740421894672584 --1.1143098367070086 --0.5922101125605798 --0.5947636205495997 -3.446995116287033 -1.0974515168762422 -1.0513965048173455 -0.3400796845690894 -0.0743494231481364 --0.024717434518601797 --0.9702827804364811 --0.5290518247018012 -0.5247589619626646 --1.1046192859678245 --1.5567206404727165 -0.48214119349222057 --0.5638201764426743 --0.2668128948353056 -0.4937839625137856 --0.45047370466850006 --0.26881077172453355 --0.36605531453269846 -0.8850316952325981 --1.0060499977769843 -0.9717220102641957 --0.4058532657122818 -0.11992969975126319 -0.2663428667559025 --1.0709357046363133 --1.2134126174716804 --0.4281221297729115 --0.6149796517225856 -0.9192803060205006 -0.21206911711631868 --1.183188173909696 --1.4262613753212219 --1.3570015402029505 --0.04140799420593434 --1.6388734896030699 --0.593235177682353 -0.2534010108602029 -0.3743439816815494 --0.25778170689863056 --0.8660849171195028 --0.5266608649210521 -0.5330031820131342 --1.348177731081501 -0.013355757594674396 -1.8877255874762806 --0.20622563116635045 -0.11314643410064563 -0.2721361813816733 --1.4962215345559484 --0.6438861746532826 --0.3978583192726643 --1.097400985024028 -0.9983784148554834 --0.0286330685678203 -1.9700736556816296 -1.7802856245671805 -0.0851512272264556 -0.7469229459849306 -0.5587387240895311 --0.9260658966979536 -1.5553862666535134 --0.4162644701685891 --0.9201186924791486 -1.554507850516601 --1.4851939862979961 --0.784369240083362 -2.425826825048975 -0.33642751840831514 --0.6363892550994146 --0.1979360773892724 -0.5101585002511653 --0.8333878266867198 --1.0611696895769847 -0.9714496444655197 --0.1921921344720816 -0.4645378101766105 -0.3780760104909164 --0.2390297437629107 -2.8810911806531565 --2.2976815581512335 -0.03500673466942221 --1.7925319985139283 -1.6027363955274112 --0.09121268173190492 --0.08016267562496826 -1.1317037136017312 --1.990367496663729 --1.0064227233285343 --0.9779387617255718 --0.6660940668475975 -2.4729152791019353 --0.7897877435523125 -1.9111758177578264 --0.11216302975443686 --1.0568169848944984 -0.8937153488478126 --0.9973821640272444 -1.0488931890273647 -0.16989888665788644 -1.029432649526945 --1.7167289229913714 --0.702798582175048 --0.9300191975356913 -0.3452855076781691 -1.0355466373165505 -1.0705597340715176 -0.48418201581246395 --0.6906774727239421 --0.6309712805279917 --1.350252054271995 -0.605662745038266 --0.8339675499010546 --0.09899379727335836 --0.45681099845318085 --1.4928544920814157 --1.3212764476207182 -0.44660519478339444 --0.2785738951840014 -0.12819344505850774 -0.7467876970115056 --0.5272511656756137 -0.04317048805204831 --1.6427981818543727 -0.09013133054682657 --0.8285290780227378 -0.6932632635592426 --0.40024398788867516 --0.4164507615446188 --0.7838935803609007 -0.283926895335853 -0.6129057324972313 -0.6719900729437757 --1.5990964618695742 -0.31693403267814924 -0.024902174177613513 --0.9012755808400928 --0.7429252993103371 -0.3669612289021366 --1.3763293945256005 --1.2796446358292828 --0.10500835312837915 -0.3257514385960797 --0.7562328863427578 --1.384810513205462 --1.1603104079053057 -1.5687404791311543 --0.1416625163113219 -0.32766532067292164 -0.8148864440804083 --0.7568792672504645 -0.4094175594241545 --2.0998799963321075 -0.5453365969357954 --2.8269481279508644 --0.7599789811832832 -1.3933088204523716 -0.9496537423678516 --2.8330013960288647 -0.2824563107898751 -0.2690472871588789 -1.0122649039110199 -0.6136687089535745 --0.0601454022648943 -0.14735709548735962 --0.2984331160953429 -0.1993971886119153 --0.49590714446536777 -0.5269757367861154 -2.7874104479494397 -0.9165974013832335 -0.9591939071679956 --0.5702990863732892 -0.1749996783330888 --1.1113590680969607 -0.2978243035050613 -0.13523245381488175 --0.6245358844518806 -0.5365422191295174 -1.0104459177793608 --1.1439485110140655 --0.26988365363243394 --0.35928435324018815 -0.08142580551113157 -0.14504033788410017 -0.38610553095803657 -0.26952246978263605 --1.0064102137377744 --0.4042262129730323 -0.13435221761056482 -0.5894833736022476 -1.0402447737756433 --1.8106015441120573 --0.5453553995533538 -0.12933716246265792 -0.2244981549840596 --1.183066084313936 --2.861927055977771 -0.3871552548284362 -0.5930435973377002 -0.2955274344295485 --0.9355688068124005 -0.008766624387597394 --0.6978035993693151 -1.4309424448446375 -1.0076355586333328 --0.1187900873015624 -1.26701836020801 -0.6951544578743318 --0.24821071295448602 -2.2652180928041012 -0.4462591252023724 -0.2013384272058932 -0.6293267608726786 -0.48830636773202657 -1.5812327943005808 -0.21604196365972153 -0.41780364226980693 -0.36671711655710243 --0.15088093782037262 --0.6231286798392027 --0.36980536821246873 --0.8950000790219468 --0.657356735454761 --0.9868382529359617 -0.610434864271664 --0.07271799168314512 -2.1703749161555197 --1.561069853024776 --0.2769803821592527 -0.07516787400169463 -2.270529881760157 -0.8662760764123904 --0.45889129248496896 -0.9182911472082542 --0.025378187922761985 --0.7698848199211359 -1.2727553739405508 -2.1873954668187654 -1.4114176509591667 -1.8319679292453048 --1.5581040268049688 -2.724777852386864 --0.8928796253253882 -1.902812009539933 --0.35975126194951673 -0.5921930633355376 -0.9922143622705202 --1.2551339530304269 -0.13293262170881967 --0.11939299548667745 --2.185963961292847 -0.12853328950327578 -1.2318504657531177 --0.9333810889758437 --0.552895763475248 -1.4839011437060607 -1.3351962806730349 --0.5178167234858276 -1.3481400663516374 -1.1964648593831522 --0.20643920726602494 --0.5060809546275371 --0.30262248260750313 --0.012707646043476377 --0.48120647571952746 --0.31566890142170456 --0.5495454742772401 -0.239306981867506 --0.37518232849576727 -3.266200889686091 -0.04445987484953122 --1.0369957936343739 -1.1001816981659995 -0.7744783637215842 --0.24923134664905477 --0.4955117997841967 -0.6387295335739813 --1.2093303289098445 -0.7825534089744827 -0.8186529178031448 -0.865972221220444 --0.9145261277016419 --0.16865721260989314 --0.42528018308007215 --1.2544606440589257 --0.3128834662249916 --0.2903768304927332 --0.7193975052834669 -1.8935197466688807 --0.5177426143053933 --0.11304366235752733 -0.23365321517069018 -1.169045189538031 -1.7937512783297684 -0.6287227256440739 --1.3130472466002263 -0.780301419090876 --0.21295455956246193 -0.5176264154118779 --0.6124886203876199 -1.093457454212751 -1.131863551720979 --0.07894636770335968 -0.5250395354103616 -0.2744618762556325 --1.0852951680870544 -1.5318478861607965 --1.8262400060952009 -0.3944797345909611 --1.0766173635933365 --0.07085987634037359 --2.180303750169574 -0.4385594972424759 --0.5306083735256653 -1.7768279457311034 -0.9809519727848849 -1.2246657519439725 -0.0320533417202058 --0.18502644147261782 --1.216769971695493 -0.2765036445521256 --0.14912757549633646 -1.2484273768766934 -0.3799886050938562 -1.003956229023016 --0.8016536976596921 -0.5574985227342909 --2.2134437581099813 -1.7457258702396186 --1.5860439329187719 -0.7409019325877941 --0.12414991945007237 --1.2123404378713247 -1.44990682637386 --0.36527967104434755 -1.0408925822427617 --1.4508332023561579 -1.0113851104739897 --0.6017932457392299 --2.458046284150831 -1.0052730403381909 --0.29809326878127507 --0.04527095983604914 -0.7717415222836572 -0.7766336660741736 -0.10824046005096302 -0.44721627161415484 -0.017663325643657413 -0.3072279218679989 --1.2891075616316487 -0.36523856146807965 --0.9317947710021366 --1.2175691796827932 -1.8311520972305775 -1.3529427734098247 -0.9754613185534902 --1.079972125578441 --0.9145425522947253 --0.23732133084597026 --1.0101180662683285 --2.110738496702877 -0.6023966247819891 -2.007141664966807 --1.1935557822931078 -1.075347915792857 --1.7963607772419337 --0.5384622269951733 --1.4811640474027497 --1.1705970054725958 -0.7836112836752415 --0.3665804970152246 -0.14538766767341096 --0.4108470107215616 -1.3285906330126298 -0.43035849482627225 --0.5787001793711245 -0.29168982618784267 --0.0750637333078218 --0.18941505962774796 -0.5856456603170824 --1.9376867877291062 -1.1323760735555843 -1.6486946363681974 --0.05198339542580756 --1.2835354912707944 -1.335042293681588 --0.47350015383882627 -0.06426156410243243 --0.6222671302782031 --2.105042610623083 -0.27890988839090625 --0.07329903987021666 --0.27266637085491313 -0.8998412837010356 -0.3663619561409644 --1.6771921617740158 --1.3362632779243386 -0.4515397326959795 --0.1763646684197693 --1.1857471725793012 -1.1154996128010861 -2.816750006242451 --1.1456708395938935 -0.5867442177396628 -0.757283584474966 -0.42581356177333063 -0.2624302974680715 --0.15893755249880445 -0.6639513736035179 -0.31157410080334286 -1.2305946641519574 --0.8473744826040053 -0.7113517955590289 --0.3239998022144573 --0.7144062963561335 -1.3496363092666392 -0.7436299027721438 --0.11875416926388441 --1.5821802697781964 --1.166779998510721 -1.0820298280444856 --0.6566892444250142 --1.5332454777101698 -0.25563265304462685 -0.13612110587026238 -0.1519095576463777 -1.5133853116261822 --0.44691843023902145 --0.07363527217327419 --0.23359632060100238 --1.4600334517485984 -1.0413812197593093 -0.8348888014616217 --1.005512005075096 --0.33810254959395 --0.006627629633222184 -0.47838473950893456 --1.9206274516871649 -1.0305517315374388 --0.9487147299202566 -0.14779523812560952 --0.4076629104560804 --0.6641615189916373 -0.9959182917639889 -0.6535646951899833 --0.08264504819757658 --0.9936346708719516 -0.8207093951843528 --0.25243624335996534 -0.2994645142525613 -0.9405627883370992 -0.34056748886990224 -0.10570568643448397 -1.0623047597794122 -1.5268543683198967 --0.08153545158720123 --0.17899366281862947 -0.30213240920643347 -0.12256385072084675 -0.6966859289763468 -0.11079464238976619 -0.2541374333205011 -1.748966642069033 -1.3915575531292412 --0.42845361069241555 --3.073991168741434 -0.27782351052830756 -2.0064648057560395 --0.12588460182115246 --0.37477377634326575 -1.6281935345276175 -0.3528074207878292 -0.9340697469255783 --0.6534028059038838 --0.6484385370415148 --1.1173098159854997 -0.5939252033860587 -0.24847215803883146 -1.5062419114640047 --1.366625407952948 --0.4469056976113331 -1.2543135581111924 -1.0240794968316675 -0.6663443854609931 -0.20654128230080118 --0.8769768520666774 --0.22066037518984413 -0.2673514183534852 --0.1353274467374628 --0.8700613650069424 --1.2154946254396668 -0.2044955367192685 -0.9590569965687087 -0.6778690067990368 --0.2651222246727128 -0.5739643197996599 --0.9082077881233052 --2.2495048919053144 --0.018765320315460746 --1.5612994558867115 --0.27329180254678487 -0.2773813583277883 -0.469111983034243 --0.02741854896284129 --1.4278388740918861 --1.075398832069654 -2.5607941143655406 -0.7859134289768877 --0.790576027724972 -0.22144248968681973 -2.9738603296236765 --1.2738648994540434 --2.4610415883682495 --0.5859956296571853 --0.04322555099400753 -0.3390905202828676 -0.20404636491775013 -0.9391813618818591 --1.3956694797053528 -0.7129046692446331 -0.5758386379370893 --0.07351217001439042 -1.2607856149976622 --0.6442236976651182 --0.314839860045311 --0.5280542014273696 --1.8411882622963 -1.4885239301392177 -0.2945874495638465 -0.806813039087565 -0.16913471918808595 -0.5200358471133756 --2.525430461368557 --0.10944569588347901 --0.49466899566085215 -1.2789297826525636 -0.7545434014271474 -0.8015266455946026 -0.39084786204382127 --1.1452301777121006 -0.14836386657551653 --0.6959398694639235 --0.20669471254735958 -0.5036621243432101 --1.8931112814184858 --1.9307964351800422 --1.1816407793716728 -1.8941334087585862 -0.5154570953519134 --0.13827129475827435 --0.6584484866024002 -0.631720632208533 --0.3842752151309235 -0.4002886603125095 -0.8211555371106642 --0.2873935053704776 --1.120957833796259 -0.8439321324096304 -1.2153222521607419 -0.27356423515194433 -0.6406976076490589 -3.7918341245743616 --0.15797170253252543 --1.0681946739692005 -2.2273159541798098 -0.712537589141843 --0.2134789599814649 --1.1640766772597828 --1.4876950994432538 -0.1299040112562703 --1.2978017083375804 -0.6436363699153579 -1.108663027429823 --1.046970697885892 -0.49796424144362045 --2.2822390321901804 -0.40641147213448225 --0.032530969367011914 --0.40350630467455395 --0.7802907232834217 --0.2235473059291852 -0.6367474527657069 -1.2255815032060287 --0.6179590100393434 --0.9919725061874726 --1.1155391933084053 -1.0924416073794314 --1.210674189252626 -0.07390769204005211 -0.9151260171005712 -0.4651488699273272 --0.5021907760910256 --0.8878793479738752 -1.7741586322397933 --0.8356766615155747 --0.5370854438053851 -0.008342177333015652 --0.21461641928746988 --0.178871449642859 -0.7198765180951125 --0.423095248798397 -1.1908188618227145 -0.24989590160199956 -0.01078338751579857 -0.5540640418104773 --0.5408051044005495 --0.2076823154355728 -0.6810544998473409 --0.4044270733076232 --0.5660268573284268 --0.9764800924843703 --1.7571034853053031 -0.6784071677127306 -0.5664277448354175 --0.3255485823236485 --0.3046592898923653 -2.07326086139651 --1.198076449605252 --0.3258884300348501 -2.1757173942732937 --0.4314927896715434 -0.9054748495554331 --0.19625957757635004 -0.1136382654724617 -0.9514343950236277 -0.27190235711784533 --0.950283687503646 --0.02858671665227896 --0.3404413565402264 -0.1516287368162713 -0.36807383692100043 --1.6213592451000216 --0.9738695464095649 -1.8654278914195168 -0.1968342059235808 -0.7417964143155098 -1.3778594742233896 --0.29850637373555194 --0.032482213297148725 --0.05048443686555064 --0.3263172336583751 --0.5650435986196433 --0.06435210862732266 --0.9097317795811427 -0.5811931276882047 -0.6087809851416447 -0.1776923317346919 --0.5477662454624055 -0.013539535493477736 -0.29349667912600147 --0.3035640912052815 --0.9808912396636055 -0.8820967299434169 -0.030020322964053825 -0.49665322909627324 --1.188311412455504 --0.22476192469707834 -0.950037229795795 -0.672815318877284 --1.4870685079237658 -0.2669131851574751 -0.0902382557205048 -0.37250536693820246 -0.11909524003972644 -0.23402302736489042 --2.3375917849039767 --1.432085039521058 -1.1101332433904454 --1.1816859839479212 --1.7938605537892456 -1.1946150281668355 --1.8649963780183587 --0.2390407741652949 -0.010549998706622868 --0.17884777768160945 -1.3297824357424655 --0.15056070009110759 -0.6876216630527897 --1.1294697084774754 -0.3747906245048606 -0.26695325699874173 --1.3458982968469444 --0.3919578337929812 --1.9840008340588349 --0.7598469465140183 -1.4395519248459898 -0.04576239133820578 --0.8926505679040017 -0.5173709526283777 --2.1053029267328713 --0.22379906265133337 --0.6458340421342407 --0.11634251363583593 --1.471420867628328 --0.4370013819243101 --2.269537003343197 -0.2372454313289989 -0.6219794781161107 -0.4715990347629891 -1.1634105159175205 --1.7221081337767856 -0.5474356202402383 -0.19716703176166916 --0.6108658451134851 --2.2882149283410937 -1.5747228101157325 -0.8273486198163179 -0.29055946527652904 --0.21572165691592182 --0.6404917666224593 --0.47431294289800113 -0.357841639819485 --1.4437479252801937 -0.9692200622908501 --1.5175520856651894 -0.022326164751741658 --0.8840229964898224 --1.7679136143626353 -0.1615623587652592 --0.25089056844632185 --0.3657552875226406 --1.1383826936437902 --1.1895667416383169 --0.17246405317542865 --0.6156858434616602 -1.8499655286547874 -1.0629356639983079 -1.0419189947060046 --1.3582213462534787 --1.877235152605313 -1.3239554729304202 -2.2049352153459356 -1.5270077551200048 -0.4647437395234255 --1.1804504491247996 -0.8470026000563591 -0.648449292423333 --0.27438054556974867 --1.2821309402441594 -0.3952801482922943 --0.3466103868526431 --0.45747207351189983 -0.5639392509168744 --0.8496852196468918 -0.7869441128674438 --0.1902339013921937 -0.619721899099936 -0.25004329950885545 -0.5941061309847608 --1.4762846972920536 -0.48156253504909324 --1.1929070292601056 --1.079429652203648 -0.12658096505450026 -1.1079498641217378 -0.16784285066554427 --0.6928549510413553 --1.3315364240516903 --0.7170080468250728 --0.3136133482654517 --0.010924730516051601 --0.9397974197044096 -0.5728958597206069 --0.8983662751994022 --0.20870045960748942 --0.02546489848794661 -1.3543509415880826 -0.3605133072489817 -0.04311779509504143 -0.7620769738104428 -1.656682956557869 --0.5167672850675099 --0.42954880383559463 --0.18708959138638817 -0.6157780628132221 -0.6743043390701097 --0.04975975331294443 -1.3989310840215636 --0.8053122541496589 --1.4670025216721352 -0.6108525897018248 --0.22692502959640554 --0.23610405042400542 --0.37859222877055054 --0.041976507182647824 -0.07059745211809575 -2.187534870136803 --0.903191054032613 -1.3363039528547382 -0.346632435214482 -0.1869915157545135 --0.5303809831649507 -0.8625308074963545 --0.1739351675058539 --1.3550862077625538 -0.6992582515644767 -0.46024359481695065 -1.5707025331317006 --0.02580945857645792 --0.5445137316979483 --1.1588402052699525 --1.4535731278474275 -0.8121931602257694 --1.0363325023085261 -0.5091013307237284 -0.6196306851673734 -1.0903325284203744 -2.1142943821915843 --1.1298793620825105 -0.024242702451848064 --0.4205701357521242 -0.7436960081390528 -0.5738612528639152 -2.0657895918081626 -0.983547421302789 -1.555631626513998 -1.3732844792770378 --1.8326690415133933 -1.0660268609348444 --0.13021272729975839 -1.2509011306712199 -0.22222974210347501 -0.05380399001102683 --1.0484259102698248 --0.49206881846326656 --0.9291318077444695 --0.5977111646641097 -0.7697575381352374 -0.8689359364103487 --2.4927495094309533 -0.6597950823421858 --1.0540664840479768 -0.6720259078552734 --0.09202396899236821 --1.7471648559765685 -0.3319755207195075 --0.13541939592149313 -0.701844671189415 --0.07460040220189385 -0.3862278258480106 -2.5886143986673615 -1.2576259857891312 -1.1427427363407703 -0.6377244544370423 -1.4456511696762147 -0.3744620526520952 --0.4070175579472479 -0.7575284518359773 -0.2519972794602866 --1.084581706725779 -0.3241848337769894 --0.16416104267121523 -0.8301517705964457 -2.1176801004161714 --0.6013705733383896 -0.2984434952935869 -0.9041158503483688 --0.6999581203641047 --0.5602314334781621 -1.597627923768653 -0.19107130277092382 --0.2452069038244424 --0.8592618326281837 -0.07598265163434095 -0.35271779012139753 -0.24895050359667148 -0.5760141358400589 -0.6731819603031823 -0.2530892166829116 -0.06876492084783774 --0.2717067353896419 -1.83011644278046 --0.7271852209791151 -1.2874819361138998 -1.6130953422851744 --0.5521127122976759 -0.22613606353127755 -2.829941753970529 -1.2338968445843694 --1.337782106641669 -0.7025930549763563 --0.0946845104401632 --0.4894028958469569 -1.7347849762888834 -1.2485416760026478 -0.32485282034027674 -0.034830521201279274 --0.6467650262957815 --0.9226621893224346 -0.9452203732034496 --1.4896375237179382 -0.49910221069881644 -0.9853552000056147 --0.8888744445068336 -1.6977956068799904 -1.2672183283236207 -2.1768792618736583 -0.21953396890827007 -0.039446195276401294 -0.3996811088024763 --0.05305486655287029 --0.4630219827698741 --0.048073619840853 --1.4798774368503473 --0.5564466361101389 --1.8519658290874597 -1.1307770616591772 -1.4205917325428155 -0.325600698057644 -0.6320406077621608 --0.06771303685248498 --1.6422396372248191 --0.1816451737423211 -2.6820680037433835 --0.6229587618527593 --1.3078863078799814 -0.704358519317742 --0.0072748735610680924 -1.0676107387926743 --0.5663178363097325 --0.7426076337365992 -0.14770421122805588 -1.1112836681515805 --0.03314228410240301 -2.8344867392479767 -0.9696345709991947 -0.4918984435511992 -0.2909561203415477 -0.3434871169329948 -1.1684835476643622 -0.704418498296042 -1.0259903572812465 -0.8574019501301694 -1.1756714076143098 -0.6432520160101699 -1.0842901450081568 -1.8030631528537155 --0.6741239139780854 -1.6022497854612288 --1.0400955408656012 --0.9170654187988299 -0.11157302706721964 --0.1867026461194758 -1.6249713496185578 --0.23559483805729436 -0.01813548853166607 -0.9163894745463599 -2.245649119800878 --0.14589815149253657 --1.8685118293721705 --0.23100351170701602 --1.6602205878520708 -0.0969814545263526 -1.214915447496065 -0.7518226466273771 --0.4244233179705146 -0.29019525746921937 --0.650662165024729 --0.28772506734312053 -1.4373468159090874 -0.4987213089804586 --1.7353497285241175 -1.1177518837227862 -1.4901194978208696 -0.18059061728568912 -1.1783828138725747 --0.1950906787604051 -1.0289796634616888 -0.5151950319634186 --1.0638698291910116 -0.7014044172467606 --1.1556155600398037 --1.5374462252207346 -1.15037459297938 -1.1184757708951185 -1.1324843356642667 --1.6751239147466246 -0.3718100699076921 -0.6968943554441465 -0.5710061437131209 -1.755054183233683 -1.8883291559432107 --0.04719647100731699 --0.36657422067805173 --0.5695588736009674 --0.09917511376412531 -0.28083807834860175 -0.4519002563433769 --1.5671384167339204 -0.733111744569181 -1.0718871884120396 -0.4346544730709032 --0.4086594136492937 -0.2732544181061956 -1.5445602417058646 -0.8346109042054954 -0.4006224884291362 --1.0685663714393938 --0.8026599029000056 --0.22983823514120333 --0.3467685784984622 --0.540844726745026 -0.9432741635025741 --0.3874939500919651 -0.5084036647519523 -0.771265577447696 -1.0663418421982318 --0.7232874355990678 -0.11608833799414754 --0.4139965808443798 --2.878336308095897 --0.4761539118865178 -0.6270646357485697 -2.381621802432543 -1.338741289701149 -0.36198718927242884 -0.27871136511732647 --0.4615516769288124 -0.3611738014360333 --0.40706445395885066 -0.08247810313825911 --0.6758734400344959 --1.265610790307219 -0.26374328526157603 --0.037588549026070894 --0.08167948277330357 -1.2899543402593792 -1.9052661033190752 -0.26815388997014494 --1.0113019209627336 --0.161118350816484 -0.4774514028302756 --2.333417724416469 -0.5861332400733607 -1.1782395187965056 -0.7871318679854494 -1.7219610453287666 -1.7830359437742878 -0.3022638231355733 --0.7032578245691845 --0.8976121945356637 --0.7089992275674036 -0.1867517069483973 --1.0536306075321618 -0.5102832892205861 --0.005259018609676858 -0.583674485023201 --0.5834319003367886 --1.5976321164545861 --1.1445317928390437 --0.6455451094616326 -0.6445511991488208 --0.20647560372609577 -1.572414063516552 --0.642592856677908 -0.2650824635811334 -1.2218870308236587 -1.9861141923062988 -0.24627451934997507 -1.9986330564115427 --0.548061331488854 -0.35319512735173614 --0.8435140145833876 --1.5161739087714141 -1.8795736610942626 --1.224884662668395 --0.5683978558800815 --0.3326527376021449 -0.731468242726125 -0.488765936553098 --0.5205280949029203 --0.20796101042091894 -0.7093384688109073 -0.8168583041666874 --0.560015246961762 --1.363686697403496 --1.5714102564763601 --0.5278786680639391 --0.14766192255662702 -0.5873207938241465 --0.3232986350097182 --0.3374541763615883 -0.20541460437334685 -0.19469954922098018 -0.5445693777317141 -0.14151976228363455 --0.46760705771295547 -1.012567613869846 -0.4958507127612315 -0.45993035154282247 --0.20244829464868988 -0.3195819715124037 -0.1000980748129845 -1.768962068372358 --0.902640009896991 --1.2696065479085472 -0.7205158690738411 --0.6059562595685032 --0.32685102425956974 -0.9495850779468161 -0.5961883534759744 -0.030570985130644893 -0.5136559563190763 -0.9204200482308886 --1.110475120217471 -2.0718249197284138 --0.3801301070079235 --1.3074291576161217 -1.5843026540851464 --0.4284564208027294 --0.1237624706260447 --0.27354437405514387 --0.3923770763721288 -0.03804864540685892 -1.1359647655799905 -0.2865261455604115 --0.9408778871348241 --0.08958469134846712 -1.120552064381325 -0.7844683329250967 --0.1828199801389141 -0.9363812846090319 -1.3689258061585163 --0.0005667783397469994 -0.16824944744003154 -0.9587307023006565 --0.8863713516858448 --1.1397470371672598 -0.18304038094531605 -0.6414170693753669 -0.8128015983100109 -0.09568701727706652 --0.5830739217307728 -0.7213303725671855 -0.40837368863413587 --0.758557989314576 -0.8123832914745 --0.4222993159931349 --3.1807288040403576 -1.4059675664656912 --1.2178532974369087 --0.273635341184398 --0.0252812023952781 --1.5192250982218054 --0.39110249759244925 -0.5393711751625573 -0.1314697839334126 -1.2487337268414471 --0.7222476881737728 -0.5998981995333807 --0.8462614065080183 -0.8330331517234127 -1.8345545541954922 -0.5858255868233453 -0.9884228255653327 -1.3063671737927534 -1.2917337811833112 --0.10312312168983868 --0.16813884404938628 -1.123565512320836 --0.059998035059822215 --0.5772527117374846 --0.3404147144394459 --0.6764410997131745 --0.7426098434655384 -0.6435281357585992 -0.6012862372469173 -0.03907426203910795 --0.8330249325575065 --0.027273388531542802 -1.421865851743515 --0.27862725231581675 -2.0205990872806416 --0.035397893872974116 -0.2604493767392649 -0.9602048159548086 -1.4075453396075313 --0.4412686437014189 -0.7635063901474409 --0.8952069582469872 --0.37471482511674536 --0.9077557225692903 -0.6729930083439696 -0.6797543950615967 -1.3623376519584236 -0.31437579818993966 -1.483026645623872 --0.9219889562872904 --0.6784045604915353 --0.9482208841365369 --1.2770546118754857 -0.38610590800318323 -0.2671362930892493 --0.6828871026524747 --0.3735267915059272 --0.865646031602479 -0.19001324158584296 --1.0327411516104017 -0.48350096169174017 --1.920750381305959 -1.3506420253609281 -0.06104612036128716 -0.16941553407477888 --1.1438638896352593 -1.5578235290364053 --0.5777513164898815 -0.23398630906509188 --1.494089149658767 -1.6636098719887107 -0.2930206236812479 -0.31623574676374805 --0.390640604919296 -1.4343772137728554 -0.27634017541230765 --0.016358730783698854 -1.2662085457998884 --0.21522292380303357 -0.16889029738654654 -0.06945326473140921 -0.10610383587127988 -0.7208433302459213 -0.005400291340972804 -0.4020699441980699 --1.4645082075739908 -1.4850850341615436 --0.6836984520428289 -1.469634951293615 --1.1095126237391 --0.697561201244337 -1.5500552769867637 -0.42987988991285037 -1.6386960295550868 --0.1726995685535826 --0.22763882007083402 --0.026604148217301282 --0.24616250361397757 --1.717973856397969 --2.2381368384993343 -0.5237026578226495 -0.6679284459840983 --1.0254332155850165 --1.2136529884113343 -0.6025979749805516 -0.7844857922685148 -2.6346211073109504 -0.5246502904141844 -1.3660698369923416 --1.0064960354948385 --0.2658834356286489 -0.49746200180873595 --0.9151219132053474 --0.6736253633212865 --1.2486884326697878 --0.8736937309214892 -0.11357814270780174 -0.173155906074047 -0.8651521984213492 --1.0738535195159045 -2.436307701141342 --0.6451884780974401 -1.393603851737237 --0.8759642374069423 -0.28216996579066395 -0.11781838687351195 --0.860980616514522 -1.0298743167681155 --0.5610318628773568 -0.815485749810213 --0.8543222388934468 --0.45137024352132227 -0.19160445883679048 --0.08751669462789508 -0.13710403928170073 -0.68158419151947 --2.568330431579549 --1.9800115188667222 --0.6423113276285937 --0.05414062854381007 -0.14964533840372704 -0.2607459969364424 -1.8286486521185794 --1.4446016662816186 --0.9972289774688816 -0.5031552349457127 -0.43803227604490774 --0.5918647181968552 --1.3927086721946373 --0.38154175302638793 -0.30677461771993325 --0.9231107588212114 -1.372783593313023 -0.08909655997327239 -0.39096998726891274 --0.08728608817638095 --0.6608009985311504 --0.4320512420919933 -0.40217828498308056 -0.466114734775555 -1.10353286343219 --0.9694892977637839 --1.1941739587510967 --0.3185874197367829 --0.8847533685811702 --0.3585440928281256 --0.11981883038851453 -0.9605540098089074 --1.3940246892161239 -1.4595251235553848 --0.7321484059470744 -0.009396973038531523 --0.11978391569884754 --0.3598368631585557 --0.5282480873416648 --2.0781530665173245 -0.18115836466913174 -0.8194352341440674 --0.4083609008341469 -0.47949293440138335 -0.14834579394621752 -0.5293797307914988 --0.5537867017397561 -0.45457885125795555 -0.3088190001529571 --0.07696316947320143 --1.328183874853802 --0.31081421419124333 -0.14549218507095046 --0.2755496504959101 --0.3006030011905748 -0.6151807199951804 -0.7529049489386213 --1.4784568039806447 --0.8746846959872251 --0.28491888060121356 -0.2619159471250825 --0.5121878162547093 -1.49620049117256 -0.8348224159045211 --0.6818134947549198 --1.7714922058000062 --0.6997167346557724 -0.22196912401415428 --1.9293732629188438 --1.4608621121247887 --0.5254183866217339 --0.9857653041242359 --0.6463491632713749 --1.8146149315413844 -0.03141354974289571 -0.07063254635878016 -0.16793532209985268 --0.7215185148492238 --0.3921191921993171 -1.0984673235502802 -0.5425984489740181 --0.10574334124139732 -0.12203109762585161 --0.35698625573275 -1.6893986448391256 --0.14717166106067558 --0.3619497180019551 --1.0987353093011563 -0.23328723850303992 -0.4531283561078159 --0.08702788488914182 --0.06936610994535958 -0.9259533244816812 --0.3319312156412979 -0.3971572677842905 --1.772308971749282 --0.5814265170771895 --1.5148825371715997 --1.514553717060912 --0.9087905858039235 -0.6281488901514568 --0.4790218717333555 -1.205936642706175 -0.11736216385830475 --1.4986698866506185 -0.859174031819025 -0.07894540839859945 --1.014680395045464 --0.15901415090439588 -0.5752391515651663 -0.3754061552500868 --1.1464408960066013 --0.8290017973060416 -1.1314784495330203 --0.04172890730504688 --0.7648310806354873 -0.8269016931239761 --0.7124482533546673 --0.7918687469649757 -0.7675024836204334 --1.079542749943191 -0.08326232165392064 --1.3811861990380983 -1.956382540273449 -0.4090796322794679 --1.0073186458584842 --1.275103697375317 -0.9450876753687714 --2.0185094434492172 --0.7991917847386103 -1.1910292057378138 --1.1633630669622452 --1.1072532078964585 -0.7013776440918089 -0.12886651519348108 -0.2508828518918528 --0.24643296346932286 --1.1645909818774083 -0.8827621435135022 --1.749345757841905 -1.567040540382693 -0.5362130206811279 -0.8525147003072411 --2.1587327374060608 --0.7698113140861862 -1.361865121810783 --0.5213634885839011 --1.906303426782816 -0.24242176590495373 -0.524358975361567 --0.6743003363972806 --0.1582534191145145 -0.05736674566768434 -0.3790575109043051 -0.12559547634598597 --1.109048745140777 -0.013611736387491337 -0.5685681258946171 --1.4504266310022285 --1.4244907846486685 --0.14514602465722232 -0.5002500020288164 -0.5259761720642734 --0.31123558936156226 --1.6553558417496463 --0.2598992565729091 -0.7453252864761414 -1.6730523400955444 -0.13873837167887285 -1.1869228322402545 -0.09552805842338438 -0.03066409218620554 -1.274870826309751 --0.33030488832608124 --1.648836191549507 -0.7499246927609252 -0.038410580670436616 -0.3903039399365209 -0.575656509154171 -0.0930826632312559 -1.221107356635095 -1.101374876359009 --1.0140558767307692 --1.462521958438685 --0.5768113516759479 -0.9424672947828064 --0.9694261722544835 --0.05400568965501517 --0.27371754648004204 --0.6391518350525155 --1.7508019837900628 -0.20453849174152322 -0.25534658547637545 -0.0919538712960737 -0.8704757507149191 -1.4363360498896318 -1.3636125333826945 --0.28608395137027604 -0.5906537651641104 --1.4953140708836614 -2.19428475454622 --0.9998081305832641 --2.1613065444149475 -0.004416097554761434 --0.06518406990890378 -0.539551621879809 -0.3222666327436999 --2.21430622072158 -2.057960692593112 --0.9913263807937736 -0.5188807584138097 --2.433055820047776 -0.4462113089732981 -2.319187509981117 --0.1662029101147346 -0.2109764684920914 -1.0250647313744008 -1.4261868434182383 -1.12285724344431 -1.0000605228639443 --0.531101021317918 -1.1420913082597821 --0.1705926486833997 -0.5372697768200294 --1.0938151217626275 --0.9797396358946217 --1.2200998734717532 --0.9597820264637364 --0.5357952696355528 --1.4992391704612378 -1.4721379688801426 --0.7158675201794568 --0.7302595739486739 -0.2012707500904598 -0.11400320227688351 --0.1422988912165143 -0.2950947286993021 --0.45021970865816696 --0.4878219933205786 -0.6382504350023954 --0.15573230120417905 -1.5706795528744752 -0.6363028690886888 -0.6645408516290199 -1.7749430076721606 -0.4996530713788454 -0.39931461028874116 -0.8215118637803934 -1.6087361916573262 -0.6778178949700994 -1.2462536644492863 -1.1687370317462003 --0.9734469820682577 --1.2441577837482405 --0.2694572101228953 -0.004047313653733112 -0.41727049647876807 --1.5078530548858926 --0.6946230236551358 --1.4548070698331859 --0.1908321642592934 --1.0628768553910561 -0.23547804680529416 --0.944902404505108 --0.25852727039561235 --0.8089637795549877 -0.32744419527098023 --0.1530392904624365 -0.8019134705945568 --0.3863810332858574 --1.151639310680845 --1.3495138887476568 -0.3646380575195378 -0.7061123704202749 --0.11865425443041126 --1.5864322934966992 --0.24802231077373108 -1.1488926668319994 --0.2973580679172958 -2.0623870222489877 --0.9433584069009848 -1.6598378931727358 --0.21087577385638404 --1.6419108127928805 -0.7223252135279372 -0.7349795997670641 --0.24458244599053525 -0.19360291519601758 --0.8870030139879528 -0.42746951507856124 -0.2740803711460113 --1.039710857744429 --0.7661598761325122 --2.823759376684161 -0.583816361287348 -0.340280804715301 --0.3386553829892949 -0.4400176135447189 --1.1689162827480093 -0.3999667790010983 -0.8065044710301792 -1.3948384974836159 --0.5511664519596751 --0.27096116832571254 --0.2883280820489405 -1.2743276236081058 -1.557898046470025 -1.7445907278676456 -0.8354778366862285 --0.18654813178362772 -1.5579054473613747 --0.4297743986647291 -2.336334463470091 -1.7165476013638736 -0.8263018478587101 -2.460882842761952 --0.3746673017823099 --0.5842135418293409 --0.9745307818814931 --1.7056365790085117 --0.7358086106929509 -0.681034133843065 --0.8275561420770868 --0.8144683506190898 --0.28909630600467684 --0.5542510029880533 --0.4171143167929047 -0.38243287602999637 -1.3056637670112974 --0.3437483180979361 -0.8377902523690716 --1.0408369264896846 --0.6791634309451725 --0.8878053244008312 -0.5525584424671318 --2.217627948787564 --0.20117406532554089 -0.6008728981559919 --0.3777955219277333 --0.09401489847232758 -0.27133526889198445 --0.2504427862060632 --2.3057452623330272 -0.1959028085844183 --0.36086672022902155 -0.5453507201882597 -0.3941297671918244 --0.5553257993940688 --0.7034801103558797 -0.12255390626044957 -0.14193351937762533 -0.17694754224169898 --0.08648523632465224 --0.29435784451528696 -0.4610923109249792 --0.2145955202150187 --0.8325447747459656 -0.865576312476114 -0.2851562217872119 -0.202582136114659 -0.4314583799533773 -0.5650111319696897 --1.2453590063903675 --0.06581084100225357 --1.391048031939503 --0.7103392400899983 --0.904504074428677 --2.638721073567964 -1.6812881813201688 -0.8476132239003394 --1.3128999873500367 -0.15498988927195667 -0.7596719650057954 --0.4961352623366523 -0.8817895419667515 -0.607056835028125 --2.144906925941766 --0.44570963187475693 --0.6984749593457179 -0.2661100566313665 --2.073670829275855 --0.713164083596979 --1.200346969334139 -0.1647044773648773 -0.21023558919552054 --1.2140603426040457 -0.5405871365997059 --0.41684103659868116 --0.4238642628706208 -0.672164861925913 -1.1433909742570358 --0.6170491157526606 -0.03498309898658274 --1.2167185679941228 -0.6587976788778303 -1.3786354460772539 -0.47042611925527644 --0.06195288773153655 --1.0077113509467026 --1.697753709093141 -0.3501712989771372 -2.3308305583357285 -0.32661089476010113 --0.5558221571662831 --1.1059276480023537 -1.591347936525808 -1.1734865383124247 --1.8689600368479948 --1.0863959829414083 -0.9950774271211925 -0.6733191233355142 --0.9678864613251814 -1.6866375812309922 -1.8786884606097403 --3.118611141531362 --0.7312764095815897 -0.6917751475257561 -0.21317075936518293 -0.8243748327314997 -0.3804233041729715 --0.4683261587761654 -0.8582298697009839 --0.7170600002273146 --0.39343591530155747 -0.6345366986249221 --0.19865491150201908 --0.26900239205319415 --1.0282056489678124 --2.4231539432171134 -1.2273852518107475 -0.7562768124095564 --0.32400709986794807 -1.2363019082765743 -0.31561413338020083 --0.8728739108845451 -0.60961161666724 --0.2626438276741979 --0.8977482795547668 --1.4440381967996943 -1.2004092513927123 --1.0414830108010753 -0.45388174179329943 -0.5706088042615314 --0.7828965799588505 --2.0244128555834147 -0.496559565730072 -0.6382253733471746 --0.11028603793294996 -1.0446343872352037 --1.073840345187349 -1.488573284814611 -0.5195373822084565 -0.8947863953494429 --1.280643873326985 -1.3206571300760068 --0.09029348861708963 --1.0559191979434668 --0.45310935151320747 --0.6461801064810021 -0.07849184055880878 --2.4727844024106296 -0.7601988967449749 --0.1442116203025584 --0.5533635977608291 -1.1047415816519526 -0.19048511858558762 --0.6159753292230304 -1.1479602455593796 -1.4167053150503555 --0.6620301448207762 -0.9249696238683836 --0.9410381159787237 -0.34549521845257664 --0.4692190988082681 --1.3575385577743775 -1.9264938247026282 --1.0312681322085446 -0.7271078184510806 -0.1245978195259472 --0.46024593246963363 --2.4208217882657572 --0.10773547890559594 -0.7693571492658279 --1.0342415692261573 -0.02025504167482834 --0.4577179250407747 --0.08464036070490281 -0.4777161542044395 --1.6199449024533852 -1.086389322229469 --1.2196201630152952 --0.6313731418919394 -1.6401065471060137 --0.05251390133256161 -0.06035670368590396 -0.17080600440155402 --0.14320160359248016 -0.29900001879200666 -0.5178932297002881 --0.6769900500403144 --0.7150559476380199 -1.383331431948416 --0.9720507281642475 -0.6209598957896741 -0.744726812185633 -1.5086139640700447 --0.7520354503417691 -2.2683016339033997 --1.1395253591513264 -1.470771295270655 -0.5371859416611152 --0.783375259238666 --0.45310014730819537 --0.20501256449647803 -0.5556062493435493 --1.0693893707762483 -1.236490674750767 -0.26082771860582743 --0.9965557849828902 -0.4171053802998712 -1.0303773909450726 -0.21098104409139976 -0.6540799134797233 --1.0628361252513179 -1.4855911150595817 -0.81506028943823 -0.9045857620851596 -0.5957472492218469 --0.05203250446436891 -1.058449427442543 -1.180324648059319 --0.2615537036339655 --2.1455682763356587 --1.6082478954286554 --1.3762544686575622 --1.2025237344776323 --0.5404789346073546 --1.605396714305204 -0.27818669193300133 -1.7016836598214107 --0.4146317692604843 -0.4216223174635355 -0.11291559226258825 -1.6446835396379655 --1.0750184931854236 -1.1776602430841314 -0.956341772156781 --2.164912170426181 --0.6074938537279178 -0.10807112299709619 -1.1128560103854181 -0.5787104703812371 --2.517787490109775 --0.7206296269079723 --0.7812148007072767 --0.10404720833374201 -0.48084752140659637 -0.8969800220542231 --0.2550186173714604 --0.645657898641155 -1.219727771219472 --0.014291249148369824 -0.17847980920873305 --0.18575451992659137 --1.0596553234016917 -1.330738666761001 -0.9690878616350042 -0.0176361733453591 -0.0812601462376701 --2.023739225188533 --0.20145456302169892 -0.21359025946806484 --2.0008149798657127 -0.8009912580754495 -0.4384405611932915 -0.46698219725475326 -0.5002551371670693 --2.0657612413515944 -0.5647558820959875 -0.4292204175256209 --0.3555030841969801 -0.6838032402473003 --1.6842028209212536 -0.5247766722925549 --0.5972284917357884 --1.1335712839967196 --1.6425542944342346 -1.4415358133256042 -0.514307265050814 --1.7618392871248556 -0.26752377949251654 --0.33683126665984275 --1.6651155745016697 -0.508536215609252 --0.25727130301262235 --0.2090928335610442 --0.28971604325002803 --0.6835532329289566 --0.6091961209844867 -1.6314435266698772 --0.6629463496298024 -0.732549618050298 -1.022438295871515 --0.521939514050651 -0.4238182910983345 --1.3381630636839854 -1.0527989497688095 -0.03953852222143677 --0.774315764889505 -0.13292079082960845 -0.29926789654043595 --1.39131324421426 --0.7627300056403042 -0.29668647541115567 -0.4209529422440554 --0.6272711296727869 -1.21530636944104 --1.1431283347937007 --0.023667951571834583 --0.433734019385065 -0.8844667948458074 --1.2100358081074982 --0.6454675347877714 -0.6512811174993993 --1.2791461986561972 -0.9799165050301033 --1.4947616652970759 -0.771015320073112 --0.04835099577556534 --0.29232087097862014 -0.7024278443980944 -0.5315766990749146 --1.4240616193615618 --2.302633043194583 --0.18137186311774034 -1.528724103271808 -1.1805665172203923 -0.6434582982846073 --0.265551379186075 --0.5702119967217242 --0.020293631949573655 -0.9446124333453754 -0.10271469106307933 -1.2226542064304695 --1.1890750460312027 -0.42396164124975094 --0.2494393221803064 -0.27662532134676593 --0.04507491197447357 -0.8909823134876701 --0.08738093323519518 -0.7414625098424702 --0.45348454328338506 --0.24203433623083456 --0.9115543761774341 --0.45854717682028623 -1.0513437507849028 --0.2416312507974808 -0.5421058618166598 -0.11096628050374689 --0.6195910488141542 -0.15075860387566412 --1.8754066809573406 --0.8815357759909599 -2.5208915043416154 -0.5993972260617367 -0.4613922451386279 --0.7717051458446827 -0.1348019730306237 -3.1727333271956892 --0.6036190226121235 --1.2430181279173051 -1.130469552786032 --0.8593507902314225 --0.7410278299948688 -1.3055486524781188 --0.37589657944792215 -1.355249983859334 -0.35844853994517795 --0.040291530296240934 -0.7833692203981762 -1.065543337575209 --0.5436903443398415 --1.0360637524449265 --0.7890316449634412 -1.334052129854775 --0.5413941180991702 -1.936828848010109 --0.5250730641918029 -1.2432459122104633 --0.8258846656724473 -0.05074333059432885 -1.4272883780121253 -0.7318279967654865 --0.055457468325607724 -0.7659474326694191 --0.1489043583994381 -0.39220846680862337 --0.2565321216783345 -0.8712658295317062 --0.9682582629906172 --1.6818986494045474 -0.14462166532602705 -1.1858629932378308 -1.129380295787227 -0.7952930323122867 --0.9429450592784685 -1.1537522841906518 -0.4714318898391239 -1.1381478296265066 -0.1251252535169448 -0.4586720028292219 --0.4149780491424256 --1.1021999751943945 -0.13271658635929298 -2.497679009680414 -0.8586559053703574 --0.8061509988086406 --1.721052508304956 -1.1667186305308193 -0.3176666120640223 -0.7446711372310483 -1.5854202946928921 -0.7801706660687522 -0.04424414279694314 --1.4669813159964182 --0.4817943266782205 --1.0887139576521707 --2.786255542857832 -0.733733147880452 --0.9101466982867512 -0.013178358904298892 -2.073667347634037 -0.9027218263265032 -0.47607100515021294 -0.7053978114998508 --0.14733133504341572 --0.7411582094511973 --0.16998260962154493 --0.7689584680289041 -0.05976773674675648 --1.438505174940228 --0.6378488746375487 -1.7023586177302463 --0.11129083463278572 -0.786430407273319 -2.0711353157527315 --0.007262088767200334 -0.5673420424515813 --0.6671627673793975 -1.1815919000346933 --0.23559353053540685 --0.16654428685972245 --1.1968382841956164 --0.6344454415288988 -0.2726018228423726 --1.0806120562740327 -0.7106203451167286 --0.48035537570731396 -2.6954248741653815 --0.4069634427057081 -0.8133878913919494 -1.8345683212288888 -1.0279033185520436 -1.6038778202363735 -0.33035263068224996 -0.2491380034172394 -0.3670496778335295 -0.32246808365410545 --0.11842900757652443 -1.2519024315754397 -0.015219417280796992 --1.2713481974352228 -1.3949287504236363 -0.6902550821001866 --2.0068975365288635 -0.4858153299595424 -0.283235875800921 --0.25231289441360794 --2.387462574504308 -0.9085543704488934 --0.292153885005877 --0.13284143375085464 --0.8027586059165309 -0.8953085932435898 -0.5441548596661182 --0.1043700512516833 -1.8944291608168815 --0.2891476463344786 -0.0020377328620299505 --1.091615917760936 -0.027273957981956837 -0.4058231095870119 --0.47930736420195125 --0.14458338451042857 -0.9410988697952051 --0.4015805152984035 -0.22599260972997812 --1.1817565248351012 --0.6589068280247407 -0.0264699523818424 --0.31285289494673 --2.073768884813722 -0.12942065645906398 -1.0209826409527971 --0.4767723780776304 --1.4013168362380894 -1.2878919237688298 -1.4050223205458379 --0.37726536093538354 --1.3682673597304944 -0.34561789000239945 --0.5485274639732441 -0.31210031699906965 --1.1161073468749612 --0.3338484918508252 --1.4741004901183017 -0.6360311923825793 --0.15069845808054763 --0.5538193675492504 --0.5149634107321664 --0.08023268679025423 --1.2758796157566212 -1.187530879997063 --0.25202512306489594 --0.7723069909519017 --3.695163437494644 --0.7607389788455119 -0.6057118711825725 -0.9616302708238614 --0.2982881948969899 -1.8643368651143992 -0.7206732788628947 --1.054711622326999 --0.10942941222340058 --2.683653800234208 --1.3839003403254775 -0.2265086742138771 --2.195620728989903 --0.30443270110918935 --0.6927668580440272 --0.7988482030669048 -0.8818426074890471 -0.7165633030707803 --2.0881654987691065 --0.3065085536615391 -0.2276290498686668 --1.1237302371102216 --0.36798230063650317 --0.05543621048551087 -0.7089285126257043 --0.3732067619931625 --0.8635009184443574 --0.6864488796697729 -0.17757270778100254 --2.896937949288362 --0.08106045621727517 -0.35988577319031284 --0.8600178838067516 --0.9784495132870354 -0.27167371588326894 -1.4435579516540185 -0.22275674212041666 --1.0065801331695634 -0.5922305739565865 -1.3007229139903491 -0.4160171642760721 --1.0501593954694501 --0.17949540538959155 -0.5034963158493626 --2.031724268760821 -0.6780177475185103 --0.8102766185677129 --0.6695483008798911 --1.4763847778504406 -0.292375464920235 -1.158834941049265 -0.5124451788347789 -0.9155545149522413 --0.5024594958108138 --0.9968774404396638 -2.3370878651922697 -0.7928602726853072 --0.5715089356031197 --0.0030405981210853113 --1.3807761246504637 --1.764966548681595 -0.0730428552722274 --0.39394848863329396 -0.8080672145227544 -1.246500262986538 --0.19512443157211298 -0.26601918712732775 -0.03724658187305762 --0.1886154147058795 --1.3179226869708305 -0.6901054157184897 --0.2510216448588106 -0.906540619813372 --1.039549774583237 --0.0418719143382084 --1.0625919415894691 --0.12843399683561593 --0.1558650673666692 -1.1253463374733639 -0.9765307902513293 -0.4297957224926949 -1.273103171740315 --0.7058669520863352 -2.3019697501217924 -0.849876313371062 --2.3839516199576742 -0.6214450747049287 -2.8931435612626677 --0.602595626787113 -0.49812008811864994 --0.5415874522904962 --0.791197065689021 --1.8993284964348882 --1.4995160255109385 -0.8167073201795 -0.681300754506287 -0.07553653690778249 --0.9990445962559283 --0.9273095417421586 -0.23572902636217793 --1.461342687289808 --1.065708510415691 --0.7197838628975405 -1.1814633297857868 -1.3582715209711653 -1.1554570943149884 -0.5258649965097627 --0.1506545175139474 --0.02459679653463339 -0.003930897882553669 -0.5789944261354286 --1.5427311163160156 --0.5146120421782059 --0.3342088490282989 -0.11505867541678101 --1.157368525093753 --1.0991382134262817 -0.3017831909986894 -0.18417730595972567 --1.0075473894699694 -0.7971556652200338 -0.7759248743494865 --0.6965919884155611 --0.21860734483335478 --0.5374552517408794 -0.9461577449049511 -1.1855122002958605 --2.218055122053532 -0.8223903031374004 --1.1047902292681597 -0.18680288534409495 -1.3694995327691353 --0.3299777123241739 -2.3094536330568247 -0.1222274936513707 -0.437908211616387 --0.5203458901839356 -0.7671032622891606 --0.35682943225690933 --0.44264254989938057 --0.9751017744719997 --0.17799283565803478 -0.162088838391185 --1.1098626003197711 --0.5156276027428658 -0.5134752852053144 -0.4961357417121393 --0.6872897712917104 --1.0131220893222526 -0.2074803996548862 -0.393075452026111 --1.3837150167053769 --0.896785131168705 -0.7969544493459831 -0.5642319327855078 -0.3172398094947434 -0.5487803435637945 --0.543632443547271 -1.6886102739172293 -1.5085497562473622 --1.4347075159562053 -1.8004296509590836 -0.7728005337367814 -1.0600297846154585 --0.12502195072851088 -2.1580023908188846 -0.20571418329174856 --0.6480117811902827 -0.1465086099129743 -0.09031931209768145 -2.5534321381930387 --0.5664165082680123 --0.8091356805439259 -1.47170515522338 -0.4133364258033943 -1.0012764505023835 --0.8585874666114223 --0.9468981704840183 --1.3014797735996144 --0.12647613882518555 -0.5735295646956888 --0.43572266753774175 -1.0804964644980506 --1.797547096171879 -1.5986770404929727 -0.9348885752470367 --0.3307551497810962 --0.23167700154285886 -0.39759811054094574 --0.5857731393364245 -1.0821997081778414 --1.0898361459170847 --1.693951296564022 -0.9911037107659904 --0.9199174359371696 --0.5777119251020111 --0.024201773629920265 --1.1424120589339066 --0.634763812645792 -0.6514410234978557 -0.32259257164733574 --0.43078731976916185 --1.7120667018366953 --0.7669166867425026 -0.3430885023992544 --1.0454324769543228 --0.09100729194061712 --0.6727197555079657 -0.0596902003905724 --1.04265250840946 --1.173407098245179 -0.5626546594689675 --0.1426818057479271 -1.1647884685681547 --0.14647156343767276 -0.6295760203365517 -0.2301654652635726 -0.9552575797921409 -0.06783315913612696 -0.07438670504635765 -0.10751012458774173 -0.04072109129045107 --0.2411017071119758 --1.397452326862084 -0.7482345184300304 --0.5390707775624728 -0.6987860518609638 --0.6613971331719389 --0.8202982126618465 --0.43976311613289193 --1.6055460921795317 --0.07368172054102741 -1.0476590682812599 -1.4341289912655575 --1.3259818900253 --1.3067847645758477 --0.4536305145682596 --0.6484991581385448 --0.9581927622961273 -0.3817375639963814 -0.9322184563570712 --0.12645150246661616 -1.0346130164256164 --0.13002211180902917 -1.3942341381410912 -0.34777448294881985 --0.12600717293402344 --0.9859297799110522 -0.7297957019123738 --0.14975098076555196 --0.6205561658078734 -0.27766304570587763 -0.693271243433083 -0.48821455012847165 --1.769460289851429 -0.25519908425799825 --0.650303831763827 -0.3422732402626971 --0.4775193941477147 --0.2419622709800344 -1.6191119169790391 -0.3223337849952693 --0.8909250573692801 --1.1431282625782688 -0.26183663393742856 --0.5339317172942424 --1.0894474256183413 -0.2660789211726658 -0.38054261579009435 -1.0415390861686495 --0.08150254506147446 --2.0920654946720187 -1.8225006452129358 --1.136749537276773 -1.0838122735296427 -0.0036056547012938774 -0.11967582539063432 -0.17809390083367568 --1.176213933124833 -0.2653740462097274 -0.27544982267268553 -1.3378281721465755 -1.4186557515593108 --0.11769995730913319 --0.27700793495871484 --0.6809142867915763 --0.4359333079157859 -1.0545895474021747 --0.7095785879983374 -1.3120610713230243 -0.5443190293687654 --1.083790017016542 --0.22194857408853988 --1.459001481871622 --1.0070741812053243 -0.8053248630462465 -0.7378454454255187 -0.25282957017750257 --0.8416728739554294 -1.5841228092818227 -0.8066092924890513 --0.49131914079974903 --0.6141447622927767 --0.23802627381712582 --0.02039852728885052 -0.10768067672897774 -0.1356422075189482 --0.5716154039058012 -0.2770768063545467 --0.7259577775308965 -0.8773970102724963 --0.7403297112779647 -0.21456523961814206 --1.70162411148598 --1.8098090876415294 --0.1523673122579252 --0.3140361089716057 -1.6591225039053765 --0.7572161049780953 -1.2186281621991217 -1.6787560480243522 -1.555278219939478 --0.7976943446671256 -0.44068758896823007 --0.7363281676041703 -1.3851384725315756 --0.863124587935812 --0.3983887928498449 --0.48641544565998496 --0.2981908949211924 --0.9158584255730661 -0.3538766020652851 -0.18839464763935285 -2.285608979028944 -0.05527258272055719 --1.6885733073292026 -0.35000187584274306 --1.5291614251372614 -0.3648817005727901 --0.4274484885669206 -0.9519163300350294 --0.6594964369555398 -1.6774291765252969 --0.8196679294758927 -1.7344605313929018 -0.7045648614295125 -0.11369663885230318 -1.228475537531122 -2.2533728460067652 -0.26764753262679386 -0.19254496980052344 --0.2967626910936112 -1.8984285782360852 --1.1943320713848946 --1.3891696631912194 -1.5195366145501792 --0.4269820014998121 --0.15326566279138304 --1.3779813347216583 --1.4611412161731634 --1.0251618537102392 -0.4712658173318825 -1.049968607974334 --0.38547712253231087 -1.2158624374904359 --0.0413637486682474 --0.17141175731943548 --1.999626822669539 --1.1084830446295424 -1.0617177972485103 -1.135014332669888 --0.7810291623088913 --1.2277509072199249 -1.1688452647157486 -0.06563228364834653 --2.4304333563187974 -0.4942364182633905 --0.5254196297260971 --2.2313842825280443 --0.07153230077596566 --1.0514592982728208 -1.667079356195467 --1.0100488816899904 --0.5512354835617381 --0.7458523298013584 --0.40767395167328796 --0.5045909225811063 --0.2398880692019734 --0.20491992880341076 --0.22898200056343848 --0.7982366826506787 --0.5166013833489713 --2.0019017755740602 --1.6733942228747172 -0.7729001825713375 --0.8750487575264322 --0.3252790483820492 --0.5176060886797572 --0.6175037553052886 --3.936105654337544 -2.1154274121556043 -0.06814734224877175 --1.908664140527579 -1.1049060565373017 --0.24165010771609918 --1.097893817304499 --1.8426149032311352 --1.0857308263799403 -0.9216299680494365 --0.6297293971433959 -0.5285637678445897 --0.4979045456556885 -0.3788384792886047 -0.6505269675666381 -0.49851557696075166 --0.8242159037800165 -2.617453203376673 -0.4456760312368594 --1.1069246617987305 -2.6739028975595778 --0.3194356855582256 -0.596738199454251 --0.3668712121286084 -0.3137015159065497 -1.835605810065561 --0.36494536989343224 -0.27017106418200854 -0.035971627227027334 --1.2753843948046353 --0.8544458181175524 --0.7314654844360443 -1.728788193895245 -0.4421861100627938 --0.742158141473831 --0.8491709133593762 --2.256669741148352 -0.49074167803699603 -1.4817341536676665 -0.4595178187043153 -2.570423194110924 -0.38588690688114674 --1.1358716933896484 -1.1480447842313526 --0.35421544182764486 -0.6363790324603692 --0.329037337011126 --0.2519727970387217 --1.356334443312426 --1.4532138121015272 --2.5566765146454613 --1.8428580094920097 -0.9547481307946264 -0.9733458364711123 --0.7653289801737126 --0.6230769607156764 -1.3928813387377448 -1.667869611152464 -1.2783185408605064 -0.12281178785339575 -1.3152228017344505 --0.5706887425149987 -0.37474020853073065 -0.47175121779579254 --0.5049717968156758 -0.47601613358898726 -0.991642729373602 --0.2491429036007324 -0.8579015994602996 --0.012105011503964815 --0.16345088887631967 -0.4898477502157782 --2.4015516269460684 --0.8594674946087434 --0.6199051112091329 --1.5511028107869607 -1.004337161688194 --0.6251337204311521 --1.6120636268321233 -0.7540868955179515 -0.7919112781605663 -1.0717661200481625 -1.3098823378034747 -2.927330880541504 -0.18802322134681054 -1.051334363671559 --0.04438604263499501 -0.9368415584514243 --0.6019811199334215 --0.06025078003891729 -0.3888936672793103 --1.207085679718942 --0.4012647178270189 -0.3850925164233079 -0.13045902021632974 -0.1935740960392351 --1.1923429566982047 -0.2832267871463537 --1.1200102748752334 --0.5292158348268846 --0.612559927319221 -1.6974827477133196 -0.7724836208576864 --0.5717700537660207 --0.4773797862853375 -0.7554225660461396 -0.5811023086312914 -0.7617514886843559 -1.073969531902652 --0.7665212045982716 -0.010622648752328575 -0.2920487646083146 --0.009062696410946524 -0.9311477673055432 -1.2539601784356242 -0.5616447908308239 --0.03154060522986307 -1.4941989504017754 -0.2317355287711439 --1.9780954292894894 --0.10354263579737703 --0.4438323535972707 --1.3409464821699695 -0.9344422875742517 -0.16425231790884012 -2.1943500657292336 --0.3824242847280742 --0.6296055103312755 --0.8815698375195293 -0.1971723603081233 -0.10773045503193794 -0.0879288002015923 --0.7461639189530707 -1.1729576133990733 -1.4863225006404934 --0.6940250097142087 --0.8832624763925871 -2.101235358388188 --0.8703177080785619 --0.7282119739435248 -1.0363760299649787 -0.2754143692958665 --0.7770839518862669 -1.2462504072787168 --0.7943727000737945 -1.2286929753120133 -0.4356704284173967 --0.015568618368555092 --0.7377776647018507 --1.1152673231408878 -1.5839326177242454 --1.750117433767934 -1.6277240847976324 --2.0328024866145644 --0.08837840405505516 -0.48902461234612293 -0.397195775309491 --1.8300352464670153 -0.5954196130622565 --0.29117156197923827 --1.2599704232265578 --0.16373127561328896 -2.103631735840953 -0.35784074885871 -1.3656069841899543 --1.0386606883609113 --0.04488767604341882 -0.7697875236182408 -0.41209167201390307 --0.23650909182157231 -0.6425459169016298 -1.931048588571987 --0.8770525708172604 --0.7132713425173642 -1.1156282228418937 --0.4392031618081045 --1.0194848985599765 --0.05321354667389293 -0.25142799294802415 --1.165215639242222 -0.8622757194811385 --0.022959058535661863 --0.8031489376397145 --0.25546399106667 --0.3727519970191012 -1.1366247032117978 -0.10056849665413799 --0.22735746948868954 --1.1263148288902298 -0.9718590969769014 -0.5138808029802441 -0.22376965018778214 --0.5507053728456234 -1.5131253662009219 --0.7156667641274778 --0.7142152262729768 -0.41950131262210955 --0.26236330795552903 --0.8530074368410138 --0.43953320992541056 -2.1095718440163056 -0.9594810734324285 --0.3473576707695564 --0.9838903771727396 --0.5609068767608851 -1.322365269753592 -0.17647255651054464 --0.17958718861896972 -0.5818457780527643 --0.007001611363907328 -1.492814142797456 --0.11673413374542024 --0.6024176895300873 --1.696637499773516 -1.6585875257343976 -1.6606218896833784 --0.0713776978343858 -0.058188784189614304 --0.6159517061472173 --1.285144684643141 --1.4184481351694591 --0.7750288185663995 -0.4595706331791807 -0.2854988487502131 --0.9021198479101906 --0.4701987100709069 --0.3531387819461054 --0.6986390470070317 -0.035109797615769815 -3.547842178503141 -1.2042720615977565 -0.3773762049056064 -1.7332193620185166 -2.3320568025005257 --1.002993504339254 --2.520823372009542 --0.16731179945628274 -0.6817115124463363 -0.8218044566662764 --0.03386870931706976 --1.6620872224764718 -0.7052815723200954 -1.3814502291709934 --0.9605621438095612 --0.586340168136529 --0.34509179850919436 -0.29070541397678035 -1.771355627528538 --0.027994770148128196 -1.2029024777896213 -0.8051338880886499 --2.2496342235484788 -2.2301717881564227 -1.3139863894893542 --1.0160067157107244 -1.1310686793209213 -2.733429897326382 --1.684092638832131 --0.011396169915084775 --1.3259325826351085 --0.20353339373537313 --0.29073864714773534 --0.4036205580421044 --1.6047738098250701 --1.34000473917465 -1.901300081093821 -0.02173276474211543 -1.0848051047888614 --0.5300325244771587 --0.35389750775169565 -1.7378413966473856 --2.985562740945243 -0.4051435811145777 -1.3614105893963844 --1.5887398829239276 -0.2776489453132865 -0.6098120082913061 --0.5211942793878042 --1.0849500162755652 -0.8841100860410875 --0.8452165489588677 --1.321671852544699 -0.6848658630175648 --0.6462204476339929 --2.6136040952646904 --1.9491449379494452 --0.26013758147637284 -0.701385463862415 -2.01576174457441 --1.0317907509222812 --0.4760366077257711 -0.9326396160975194 --0.5251060378620599 --0.7110057686972232 --0.5722104593422067 -1.6060723809076138 -0.02392253622005943 -1.7282490059763322 -1.466076282626221 --0.10109884952674304 --0.03184477989391488 --0.6064970872910977 -0.6381976738359844 --1.3498871379454536 -1.6788413115351075 --0.6419537601865777 --1.377887961887327 --0.26467620271582953 -1.5834892740259578 -0.8900646322886546 --0.6681200981250166 -1.0194486073135118 --0.4198173838799545 -0.15134667638648006 --0.678716402311797 -0.08121044352562108 --0.0042823308324736395 -0.34367970947585047 -0.7368922486156521 --0.9914802391783459 -0.3501626505403752 -1.4446789485810312 -1.177263076962998 --0.37350362698604467 -2.1646595042647823 --0.5135651861605314 -0.6712689651915816 --0.6249609388832761 -0.3760161084209458 --0.7322344785501403 --0.6777986420334938 --0.6547020685090089 --0.8357731823623947 -1.0522418898545949 --1.4898336735738964 -0.11550176490431187 --0.0585916441838312 --0.8512905664816868 -0.1431152873269468 -1.290062662058733 -1.691346495268652 --0.6948537358974815 --1.0603242563799475 -2.4485839553254514 --2.0893362941214915 --0.42538965823505637 --0.7215924641283753 --1.0622568346190309 --0.053310006088038854 -0.03477911320403351 --1.3229945618501235 -0.6706565189449684 --0.04429148485457285 -0.428899824984117 --0.4632821290153445 --0.72511172216032 --0.11894402855882795 --0.8478937906102404 -0.08763227472110444 -0.46326012196686156 --0.7671728206469361 -0.39347653225528334 -1.1716186890101714 --0.5678050993466065 --0.6030567365895215 -1.288104016141098 --0.0020874463748986817 --0.3287745905142157 --0.4850736732175459 --0.028197016451783328 --0.551560016670054 -0.7357947618758708 --1.1864200912069267 --0.2626275211739703 -0.45313138723605123 -1.6204632265573522 --0.5673101946266744 -0.2969807353554726 --1.2516404226370619 -0.9990053043838557 --1.6318326945177368 --0.5529193627113466 --0.8103750741576968 --0.5964174511387587 -0.7915570080654986 -1.7768197082905335 --0.38326982972469603 --0.8633218165470133 -1.2892744949009756 --0.366434319914963 --0.7550153358742702 --0.20471760260421065 -0.028923490330851263 --1.6667197054905323 -0.3405640463551307 -0.5646590892178798 --1.28314808903406 --0.417773081365352 -0.9162657679765885 --0.427960553976516 --1.3775097364744633 -0.4576644246123333 -0.43220054854577433 -0.07775080680553703 -0.7855012280416024 --0.1855277363987952 --1.5998868270018314 -0.8753782005288642 -0.7117549095714094 -0.7510462867223962 -0.13627236798484868 --0.4395994012867495 --1.7288718126021836 --0.11630811634299115 -1.097406935897981 -0.39675755650022004 -0.5837983277426668 -1.0112041985138502 --0.048317028976122854 -1.0777049226910107 -0.3907077033615898 -0.47155570680718184 -0.406219618583306 -1.6120754758903841 -1.8422079980965125 --1.0687447062682855 -0.4766645906332037 --2.027675696592284 --0.9168578789345807 --0.5800056407799131 -0.0034973754177724517 --1.0582043645333814 --1.358335951687456 -0.09935240133686582 --0.7770881741608823 --1.0943271903725953 -0.30065257449406974 --0.17949631450187462 --0.014585132654789721 -0.5713783479646692 -0.19810171620844302 -0.2208743065694481 -0.8304634801109012 -1.2299027705652072 --1.0419604630956898 -1.9528206477576373 --0.1652345901315189 -0.07771822498338167 --0.5448928121515683 --2.878904878587251 --2.2899620200081903 -0.3841384320844403 --0.22900898799977518 -0.49491840138417337 -2.045773575418183 -0.3098770300992475 -0.014873238726452376 --0.13619293319679973 -0.8382266213876093 -0.4872036796939948 -0.15625440203483718 -0.20888545496105168 -2.052491196897496 --0.47138819993273423 --1.478753683532843 -0.9632835901829482 --1.174285774619628 --2.5658490655190906 -1.463603666413118 -0.39757361940866115 -0.35691236696245937 -0.5549314472115087 --0.1833140391247181 -1.184116704291288 -0.363148648432682 --0.3724763468997741 --2.244264060244386 -0.6160818503852752 --0.8724969030671814 -0.27479739085564203 --1.8461680820382014 -1.7905766490117694 --1.8288016888093508 --0.42648829666424853 -1.0553111354817368 --1.6063480962086296 -0.2787973411261778 --0.9587099768401541 -1.5867810963901874 -1.989526948210817 -0.7381393096698805 --0.8500185773016992 --1.2038918204327484 --0.6383036288840434 -0.887704918861792 --0.3596549916629128 --0.17880881502410956 --0.12326518479278571 --0.9220864895467098 -1.4653384320212257 -0.17290435756768163 -1.0922193635347095 --0.10166068189330042 -0.062120816911614606 --0.6318913480171904 -0.7694938158965583 --0.4637422046035604 --1.1535003820479606 -0.9363413816350175 --2.8802767991263463 --1.9011218713895897 -1.640921244982014 --1.7654207165722589 --1.2320840908704613 -1.3948381591590007 --0.30692566594616444 -0.044508492956560404 --0.033920055251245244 --0.952857771672967 -0.9667652038076291 -2.5568659411148986 -0.03303039679522708 --0.5110767585527903 -0.06285056079135976 -0.13523780608395994 -1.262352706349352 -0.2865078246970526 -2.0036984498094874 -0.5900735439466905 -0.3777762162930443 --1.4643822859658435 -0.16362155204961368 -0.17930595998129017 -0.9902567045617916 -0.6016252821294568 -0.8831044093061967 --1.0512973851053289 --1.3827004363405975 --1.0654078319058697 -0.5310982409829568 -0.5170503192686038 -0.31140390663701734 --0.46123766997518595 --0.7442020026377887 -0.666243267094783 --0.3217356832900951 --0.5610159246671849 -1.3955458505042893 -1.7425904368258927 --1.8811135889178277 --0.7198074256759472 --1.1215525050097725 -0.024850160703832263 -1.258733917124954 -1.0570462603748096 -0.4453564024177982 --0.8867151680408842 --0.4908539229721933 -0.12248193888372677 -1.4728233948938756 -2.369945001715424 -0.4074432960637588 --0.1386470272751723 -0.3690899162097329 --1.4306156425124723 -0.6545250962920955 --1.070451602687212 --1.4901231836113693 --1.9798760089570058 -0.623237930233019 -0.534133793474321 --0.418854068078677 -0.09850924198857838 --0.5756984154370839 --1.6594016650302663 -1.0361830316172649 --0.006294687171874227 -0.22578711289070838 --0.4685546820537823 -0.8840078393508078 --0.2153874536980973 -0.9828858990502465 --0.510323990206719 -2.109080069957113 -1.3720747331744898 --0.07020840753989635 --0.5347525226263212 -1.5501176050174705 -0.26386478464584484 --1.1939606789677208 --0.37621038367300325 -0.02212879200709085 --0.9338907628505305 -0.026560218546557213 -1.5268275852465127 -1.0120891696904586 -0.4775811031612889 --0.49629263686600705 -1.8185925239184122 -1.149324371689589 -0.9803976048180744 -0.8288103910771346 -0.2816014053964131 --0.89380638816209 --1.8015655439828404 -0.8846682959810805 --1.0190862580523141 -0.9646264054586473 -0.6768854170433549 --2.0812185779960624 -0.31125051486369476 -0.15231253127217684 --0.20181688306765827 --1.8205615888985187 -0.059250857006431304 -1.5432889674348353 -1.0792331657030558 --1.718710110767325 --0.5758142411768494 -1.007224788601756 -1.0212432750120215 --0.11192833966596565 --0.7276472480285772 --0.6721074203744698 -0.7695349795924268 --0.21477978021134173 --0.37878565563737243 --0.24278886658485938 -0.32744226079779865 --0.551224275635997 -0.8299234949776763 -0.9758618428747212 --1.1513919780346584 --1.1233517472312573 -0.11262901966198825 --0.19084954707414187 --0.5669460626286237 -1.7192128257921515 --0.4129128111221766 --0.7554907068388702 --1.135603566641837 -0.1541935026303763 -0.5912069186702913 --0.8645558331195778 -1.9974556855163281 --1.9674473736181732 -0.609601703690575 --0.6260362028478869 -1.3909261305239864 --0.2930012844291198 --0.30624635136579603 -1.6966123510626863 --0.13773936554921665 -0.8418832274529133 -0.714091789499022 --0.3715411770360822 --1.6976717946561504 --1.519963562786283 --0.352864283408712 --0.7303061773996188 -0.8178667839524559 --1.3770705637410214 -0.47334446464065955 --0.549640220512532 -1.2957589251600394 --0.1732049848106251 --1.0714288071940663 --0.3566647017025502 --0.20612342919046495 --0.07437951612114406 -1.1844185980396493 -1.4728284009199075 -0.09893600498261117 -1.4931582986081628 --0.527480067976587 --0.9446654258048744 -0.08498127900032827 -0.9060189174419089 -0.9062275533533538 --0.4485342224212685 -0.3151614268599903 --1.0645523258360328 --1.5806128484431847 --0.5111736606140506 -0.586134852759811 -0.26017056927912835 -1.39064883626675 -1.8626815151448306 --2.057947442735465 --0.42908091451816044 -2.2893643762866094 -0.9657051794454131 --0.34872450409044575 --2.334232368802159 -1.1593921893812098 -0.06248728016523191 -0.10406583945750592 -0.5212967234371512 --1.3566694252221303 -1.34600608538543 -0.2678717858954754 -0.12067865059597926 -1.5471558921112594 --0.42968056678610184 -0.40167113823751066 --0.8257877351201902 --0.041785585423345054 -0.51403865845127 --0.366453210783252 --0.24845577774705413 -0.19683556073028444 -0.07592486676039349 -0.4740070190717143 -0.7884257027178351 --0.040193099996272005 --1.3805328511968606 --0.6806730480917079 --0.2025918505046008 -0.08204877165241077 --0.48009665189950634 --0.555964168554483 --0.2640303304272481 --0.7882339083002003 --0.019438009170560544 --1.025080404822461 --0.29228130694560467 -0.8452206394254699 -0.5484254348179908 -0.7155631744985107 --0.29194788463707344 --0.10087846523104341 --0.2304392378666285 --0.3167023297684796 --0.10910214975818261 -0.18814582410280614 -1.5854708099634205 -0.9202591113053239 -1.4874976711433041 --0.16863101564612976 -0.2572636201832305 --0.15187656183822382 -0.06744660243637877 -0.1347483044194028 -0.31875472620930617 --0.7433160221638331 -0.18829783360167776 -0.08104800215087127 -1.6097435971383027 --1.0565513124667711 --1.7926482844662988 --0.268875920997997 -1.0136544974966049 -0.412750719515102 --1.237254403350558 --0.40705346567086376 -1.2192854489992055 -0.07153609836934519 --0.6561959304359308 --0.9426036665982771 --0.3181776185514282 --0.24466771643273805 --0.2782485405693262 -1.348432957529374 -0.47981034865594835 --0.14842561373668992 -0.32216175791471013 --0.8396545896471883 -0.37706792466199807 --0.8745728077180802 --0.15861861438886907 -0.12804268905140134 --0.11236294259770647 --0.07620191763043202 --0.9207975930165867 --1.4053230479240744 --0.19380743074399356 -1.3058407125408422 -0.004974695438433066 -0.20871991866667627 --0.5432542923693104 -0.31182300178361755 -1.845440152016837 --1.7508406369861493 --0.8197924746918632 --0.27226521740483284 -1.0122160731623326 --0.2610778006033148 --1.4016979563605825 --0.7643107218715345 -0.25240197609845416 -0.11308373826788606 --0.2159882449410723 --1.6631712170310564 -1.295059773111664 --0.3496288669358677 --0.9066688218308739 -1.4477052429586508 --0.6631193752592568 --0.5332926116814691 --1.4595935865841068 --3.195612498028157 --0.9205243782120788 --1.2370710915887282 --0.5364687583310366 -0.02158229918925592 -0.583791577975725 --0.7603158085636175 -0.9717542056045649 --0.42342780469850344 --0.1917198095045271 --0.7071853934781878 -0.26584263698277183 --0.24175467424119618 -1.6887683577010757 --1.5919427552875371 -0.01082444390481332 --0.3083293285614747 -1.203499758850213 --0.7924399248824016 --0.5183142758361647 --0.2708847952979997 --0.1795025160678866 --1.8076925070851664 --0.33520993938372695 --0.7263047447123138 -1.0436325364070456 -1.2176256516047683 -0.4365567226513377 -0.7428615085770166 -1.7070874368485838 -0.5126145387427279 --0.9781651018516919 -1.6169570354247556 --0.9014558843857762 --0.872874925010508 -0.4620198475622945 --0.5659778878026639 -0.6526834967348917 --0.2722115642462487 --0.9351367642207495 -0.004924237696142577 --0.3201296907956153 -0.651463165687979 --1.5320676353864555 -0.029097392312405754 -1.1861489290694982 -0.5513349547877899 -0.9444926880089768 -0.04511258276474427 --1.2000097868466175 --0.5545983137184416 -0.623417863994735 -1.3347512344133792 -1.1544164352884347 -0.4526898607673255 --0.4157337594509615 -0.8908602196621489 -0.866006815753258 --0.19627672731959186 -1.5975580169259112 -0.6440028129298024 -0.055605316747001844 -0.8694307785240841 --0.07446236654341952 --0.2609861830186191 --1.679844166962446 -0.5624665737081287 --0.6230549189854757 --0.3432318490395244 -1.2048172189616313 --0.422794472718147 --0.9487479899823791 -1.500103140791388 --0.2720892377875912 -2.2368747894564414 --0.3932381601993556 -0.4418576789847855 -1.7185258288466538 --0.4574042052273865 --0.2951332936116482 -0.324987455504776 --1.76164235753503 --1.1766151875353794 --0.27013377121784254 -1.4248727871036657 --0.8863367585759244 --0.6023640434237834 -0.02568641342468002 -0.3333558732731236 --0.04362077969987999 -0.4824265286798566 --0.17420191040576563 -1.0017243466252033 --1.8404356625651739 -0.018007912492827686 --0.5661281305862881 -0.4756201687592745 -0.9452593253706727 --0.4333467139902293 --0.39166340731540866 --1.1811755248694433 -1.774023275982751 -0.6427504194413061 --0.6570806619526882 --1.07050204612031 --0.8660918877277345 -1.133941166339855 --1.704526710480362 -1.015363865508401 --0.046220165702810165 -0.32675177740301464 -0.4183961296257125 --0.7518155272671396 --0.21171972571827796 --1.7280547925207903 --0.186506883780347 -0.05195798663203842 -1.2086276277245467 --0.4890517624148116 -2.0586211062751767 --0.6005144610187052 -0.8888864555229342 -0.36364438343714556 --1.7792697899214633 --0.5929605664446922 --0.6594436561645429 -1.0020906492471997 -0.5630027879505545 --0.2365534021296344 --1.6459534298416734 -0.3091843745505287 -0.9572374288343616 --0.9236328985513887 -0.5400108537417013 --0.968470041398111 -0.6275815846454572 -2.9941551872256427 --0.7783632548338398 -0.46813585708706285 -0.9456647446916243 --0.5232053072570286 -0.5312558496030086 -1.4543372970880604 --0.5580585573136845 --1.257413355002949 -0.8243339158317303 --2.099932006593634 --0.089050359396567 --0.6296347214831592 -1.0123666277146348 -0.6701762286151726 --1.3368444638663712 --1.0057741602467403 -1.2129477179436101 --0.22571813866027549 -0.8830408458733101 -0.6133978169879697 --1.0741785946656401 -0.2548601316416709 -0.5242450595763233 --1.3077943123780058 --0.15616342543339595 --1.8328744402469783 -0.9364107054940172 --1.5920458774730644 -0.03057443920294007 --0.777276605393959 -1.3534632607852222 -0.499941089747799 -0.47763533555466275 -1.7599644394486755 --1.9044513795617652 -0.930575959245382 -0.34393637757244194 -0.5289681830005752 -0.7834656543320025 -0.8069476609089445 -0.06290653192857068 --0.29211249112741655 -0.20453434986416355 --0.29721865523853636 --0.3541784038964472 -1.0123608926541872 --1.7278441325505163 --0.6491491255702451 --1.6034923859048913 --0.4419861946763692 --1.1199816411801355 --0.26432633064948863 -0.019157286401900123 --0.7517084240829913 -0.29954939967599986 -0.5753260618166638 -0.424021710425947 --0.4046624465518957 --1.3322993000322232 --2.477210682063973 -0.31612278923663806 --0.8971970296118716 --1.1806852817248192 -0.5162936918710247 --0.20667477148272534 --1.5264492439064543 --0.564604174654033 --0.15298933293517775 -1.704201466877794 -1.6318314116521322 -0.7680426781318267 --0.7050856119024607 -1.426622003765616 -2.1820956781663314 --0.3045748054211432 --1.3267670143714665 -0.46493576592430513 --2.6247572266711905 --1.4054417810255058 --1.184216106174413 --1.5446226086333152 --0.5034097142998243 -1.604540397133908 -0.5388108486689263 -2.41229123614837 -0.05202977912940971 -1.793924357027392 -0.7443137136349937 --0.14502512465084094 --1.0701753616119853 --0.5762726552180338 --0.12682635186985458 --0.9640281467619631 -1.2760465026789287 --1.3471274806089848 --0.1279919529056499 -0.9915486276699204 -0.7854229667382455 -1.8455191699301376 -1.037331640201508 --0.26585989012168243 --0.9778309269195852 -0.8842087806332907 --0.008091315528032104 -1.067051817591578 -0.08075757234611391 -1.2851284617211698 -0.36660919780694284 --0.5408181187750374 --1.6006115022522514 --0.3419283437322548 --0.8987362152295476 --0.5097425278877479 -0.3913377187576003 --0.721208859423724 -0.13414771356538469 -1.2351281035356292 -0.8231167039686969 --2.36960653825384 --0.2334929441283294 -0.8018876605578932 -0.07821701762930941 -0.9060183675371576 --1.256734990050183 --1.1603124245174126 --0.18378190114189566 -1.361838947820491 --0.6186340693218867 --0.5970561364175111 --0.5378082689093608 --0.5235077799747148 --0.2859289057269984 --0.3850883816915433 -1.397673992707264 --1.090437615949143 --0.018779765066982878 --0.004233030049159141 --1.172596009678967 --0.11698233470068475 --0.4552320069448958 -0.40187635626528245 -0.6498781804077607 -0.2505680096922848 --1.261692146760858 -0.2229025113496142 -0.20538071389478268 -0.29992853926625546 -0.395978463380655 -0.660894225960453 -0.6771658181178901 -0.31783384420801847 -0.5189837788711102 -3.0929152946933534 --0.9036879696896581 --1.2161924320761928 --0.04219007753883381 --0.07759629248512179 -1.2047978317744228 -0.4669092595775516 -1.0287516369839202 --0.4398468028459097 --2.3619331308340135 --0.29018305468718814 --0.17424163820510274 -1.4446948859128514 --0.4126026759870336 -0.7399699631846095 -1.9339330261047283 --0.8052267742794069 --0.3544340199266843 --0.6518704952481122 --1.210518247819925 -0.6887635256676378 --0.32733577740096265 -0.11254885022645458 --1.6518551378459052 -0.8831293019261269 -1.368723563830269 -0.9962147887444919 -0.11776138156203018 --0.5963636775407043 -0.8361259926563795 -0.5535498157567105 -1.8257463654603345 --0.17260538762757602 -1.3676984602753737 -0.21928167332256537 --1.211635155086485 -0.9473256182924524 --2.1411475865517153 --0.333853612934416 --2.8375222599891656 -0.5058428716868801 --0.043250719402178665 -1.3081200842101308 -1.2547142872469157 -1.1194501481178596 -0.2463534478818044 -0.44903365019883906 -2.002398593130341 -1.1649724251718419 -1.8369765580664776 -0.2842537107953732 --0.3397775860710725 -0.46455087733783607 -1.9360060709408733 -0.6101404020594482 -0.29212242168131597 --0.37661732095344624 -2.3782481036197636 -1.8643314191840206 -1.3755600519955498 --1.219710186101226 -1.2953799047634547 --0.8213919411173435 -1.1659693360640608 -0.12265076098704564 --0.20583979069848765 --0.4070746730192743 -0.6338422711840911 -1.0530381995653624 -0.5476284649089721 --0.45137123901404685 -1.8633024514030079 -0.1843339731746457 --0.8495969623440915 --1.2561864228202766 --0.1122926086728533 -0.25464652135420723 --0.4081081185553323 --0.7866218200257372 -0.150374850899437 --1.9848206478804733 --0.5914865260888865 -0.5284023946890313 --0.0362639734616863 -0.5440738999488047 -0.9318574071070014 --1.0549787572395346 -0.06539935467930845 -1.0115779638218014 -0.14643952198397542 --1.7437650144360837 -1.391287549565889 -1.0184621481188028 --0.5908606378470579 --0.2459558406764067 --0.43029487354477897 --2.754283350353141 --0.5589204657804367 --0.39133676631838205 --1.0557911759926972 -0.3289230725424271 -1.5154184502082437 --0.13114479725454953 -0.8095662726921476 -0.05125469938078799 -0.4770763871396425 -0.9672747651118434 -1.012340422024171 -0.9543788925447363 -0.18908682295165108 --0.3742606776280772 --0.34386545932379664 -0.9123579185514564 -1.1458864808940428 -0.2997734050984281 --1.2332521204958313 -0.8340120295432409 --0.3422067806200335 -2.6342610887847733 --0.919984054516768 --0.033481081219457275 -0.7878314847007022 --0.9632010294544496 --1.3489158900584852 -1.0913796249552978 -1.3053162221636907 --1.1609805698765796 -0.0870809904174122 --0.1610650572466269 --1.1871804254449325 -0.3008720478177921 -0.0584930387917499 -0.1834157968937845 -1.3540214582035577 -0.7526176023721034 --2.032183443964485 --0.1427639118760368 --0.1910376966601457 -1.1701643426876773 -0.5303705672281485 --0.5854112441424982 -0.4048379945781267 --0.9417993024027703 --1.310374307615571 -0.10210145141880339 -1.2854903420843269 -0.19395814774123085 --1.494685932853675 --1.6440195957362291 --2.1091284636699026 --0.3129294725968727 --0.23876688183465497 --0.002950327977348563 --0.201865661580491 --0.0205338265378846 -0.13403822998145298 -0.4785548783111436 -0.5088420079677028 -0.326909098288383 -0.15501375839546874 --0.07103546267303136 -0.07729465521076956 --2.2864739153201556 --0.3947483785420372 -0.6480319127950086 -1.8870379186905974 -0.8391713820749522 --0.5517088639871387 -0.2788850117487016 --0.43844266352806704 --0.7097419712726108 --0.16867261785505566 --1.4514892481730226 --0.07866696189164034 --0.06391503819463114 --0.6582270601820664 --0.4121631672354807 -0.7865788049486337 -1.7941736889541238 --1.0713231808282542 -1.392813738133396 --0.4965045053133216 -0.6337007314114761 --0.505329316723213 -0.007065416536707194 -0.6036072321696531 -1.166433676419081 --1.228269399403395 --0.6877038636624256 --0.5384060122640076 -0.7912700972968753 -0.29973373581221385 -0.024129980951051476 --2.0046210863232585 -0.30557463759234055 --0.46262404227982185 --1.1156142600346104 --0.11226486842407424 --0.17149298457441653 --0.47897662146255904 --1.541806890426049 --0.05334132692711234 --1.066266084604797 -0.23937099450197058 --0.5717069187042204 -1.0586135824390135 --0.4920819878055889 --0.26105208882291586 --2.046810988541868 -3.0243142859864243 --0.3685385039206812 --0.549126965127342 -0.28590572936188924 --0.12174304953910312 --0.6069648096999068 --0.17334164557338405 --0.20026797254426526 -0.2867020936178865 -0.14893413409386172 --1.3752816709097364 --0.02769695218643932 --0.6039988757137178 -1.4844943381668068 --0.545576290648538 --1.1415432128377243 -1.3726995071353454 -0.568235777849683 --0.07384970259310052 -1.0228945215507872 --0.25539853461280515 --1.3431616444741243 -0.5180543283357172 -0.05106131470214901 --1.3250419121134183 -0.7097505551752206 --0.39492910997952313 -0.8324442263545935 --0.25749441780223875 -1.7597198747863558 -0.4813567427101266 --0.022741513590348778 --0.9912094289304415 -1.9507703009657056 -1.8713849544355028 -0.208417117358213 --0.7167904646217371 --0.14790356976189512 -0.5103401483893222 --0.45982866635492553 -2.220225738300922 --0.21493613179958976 -0.6511113560345382 -0.6950135601065456 -0.17986818931602308 --0.8450454979908087 --1.0518623923268688 -0.7678818848596299 --1.8642764499796118 --0.9366988981276441 --1.4680446873983086 --0.4596115192029691 -0.9896376748123137 -1.0575441420319858 -0.13310101350381323 -1.5033827587964594 --1.7052419526107283 -0.0009164784020233713 -0.5601423302850762 --0.15770486042241363 -1.4670301471042657 --0.8706010843180735 -0.0035199885143033377 -1.0877692049322154 -0.3046521404723836 --1.6968838999970255 --1.1347786326086973 --1.0744726011370838 -0.20483510655934453 --0.39696778430376195 -2.7523711022459385 --0.4162687609954037 --0.27832704728057606 -0.1078879908543159 -0.9873737960121998 --0.6037379482759578 --0.5995214424772513 -0.518911436391398 --1.1920428419729265 -0.27000237498415863 --0.13971044544731495 --0.8655234725737044 -2.177219695985274 -1.3907118910522 -0.13512062162285343 --0.37543924384029564 --0.2609720605436379 --1.1690282598633144 --0.6994896009599042 --0.24548193916753958 -1.5835699590225683 --0.3177638018422532 -1.5633755953245605 -0.3749028472787975 -1.5448685813489842 --0.5839068597739373 -0.1542327064185915 --1.9070904673771165 --1.3976139266511203 --0.38311999025332055 --0.8483278522875929 -0.6731650245918815 -1.1038188026263465 --0.7891706985443496 --0.3780123721219355 -0.924012715740413 -1.5660896834318856 --0.578015207692621 -1.5168178774183774 -1.2418654904668545 --0.4753403521366547 -0.054247951447138176 --0.20538740881936135 -1.4162391264194403 -1.2642927680382428 --0.5792607838795721 -1.9273857583787146 -1.153367220242476 --0.5993447256137759 --0.31769404379706 --0.46638222023731424 --0.554957309078404 --0.2119329777506779 --0.803930480122592 --1.4163362016257723 -0.3974640442963014 --0.4806767885793671 -0.928699303653456 -0.21457141154506904 --0.2740819181370554 -0.044607833008732695 --0.8764094151829875 -1.4473660802414345 --1.0515799485634294 -0.2313888535781667 --1.5442071976562448 --0.8019803750115313 --0.8435716363044652 -0.6530990945273626 -0.12204541187204389 -0.2008689458301261 --0.44449637805686804 -0.24758882633010257 --0.4076050983591435 --2.0803477492562577 --1.2130910413482003 --0.6055904002704543 -0.27109182575488533 --0.5772468906719618 -0.49025085571399746 -1.4376662913513343 -0.2094486812249415 --0.687993534451506 -0.2933627896539165 --1.6332871255750239 -1.2589591519807435 -0.13602493317086012 -0.9004482653690198 -0.3235514193773183 --1.1759040382037809 -0.7693978624872183 --0.3636768018104196 -0.7312384589068768 -0.10364290015094656 --0.17871203823142642 -0.37062318208770306 --0.24339380035310862 --1.4640252984393867 -0.5019763425824921 -1.122493030518435 -1.8248368088850602 -0.7775591943741774 --0.5585612594372027 -0.5008720133606356 -0.8862080353431537 -1.8204518968059045 -0.5529921072427962 -0.2384982288086894 -3.689553559337165 --0.8646297150156051 --0.5464768414091649 --1.6687401947679676 -1.0339313049912684 -0.22159731726295318 -0.4339651737071426 --0.10172122700756335 --1.1998244069942383 -0.9103488201387985 --1.2968401002222474 --0.5961893038085864 --1.2113436958970099 -0.3031805436433819 -2.389048801146588 -2.1364072647972088 --0.186918745941792 -0.2678010834257608 -0.5197762706680253 --0.965919514029998 -0.04369170947367813 -0.9252339499914065 -1.6747091236636802 -0.8114874209861689 -0.2086820216503839 --1.5017502642092566 -0.3338491366412076 --1.671913821349136 --0.3358470208209848 --0.7775788280238177 -0.5910693791901778 -0.30921008185671517 -0.23548910912024112 -1.028170010459415 -0.8614735371965341 --1.032188015471248 --0.0075415974878501445 --0.8360388401562376 --1.9127348936168036 --0.22034486276103735 --0.05767231037231613 -0.5563456171164551 --0.41191607947802905 --2.3702842661090133 --0.1959875389874567 --0.5164457230637345 -1.5213811973611353 -1.7495762698780368 --0.9372106047298914 --1.4617511768080307 -0.7653985422419499 --0.7470904867548915 -0.9508750618957469 -0.03655914563517114 --1.6407341332102243 -0.22646566269267415 --1.225151044550951 -0.14514851227336747 --0.26044918295890335 -1.3825131429666229 --0.452103508550773 --0.4901829369208692 --2.0112909698653887 -0.11364241071314526 --0.9856797569597499 -0.30985984804316336 -0.21381033297925964 --0.7926559628651664 -0.2573556634186203 --0.2530178756346499 --1.3992191515796442 --0.01258990512866567 --0.45210502547436937 -0.34145935415680784 --1.1491257404712008 --0.9790253732147229 -0.5888505597941093 --0.1773385249305618 --0.5223440963955399 -0.8078289625852034 --0.189009552313307 -0.18962800530629512 --0.986019755468066 --0.5190005215703893 --0.7292373336183089 --0.6121489786139606 --0.2861445045000337 -1.5064239025613138 --1.8480751718571777 --0.3731176032675467 -1.9991691585542308 -0.13314195528183062 --2.203037166012802 -0.7292335101997793 -0.06310744601666544 -2.037155730265355 -0.45437369364634694 --0.9895896213772046 -0.10083565999060903 --0.6307226012843227 -1.196061602462209 -0.05535897425910148 --0.776026855427091 --0.4676218547007525 --0.513067947088789 --1.0068926158590472 -0.7083653265393871 -0.7703828905042548 -1.0025575822417332 --1.00999617330758 --1.6795589542691154 -0.1946587602153307 --0.6575667252091569 --1.3965887809915702 --0.8486026044083451 -1.0037264638439622 --0.9321286355210892 --0.8783025084220645 -0.38582864034628855 --1.1966072028974595 -0.2693653285457622 --0.8843140891860564 -0.9606427212248012 --0.8210588398916832 --1.2972809452353 -1.0328296274281537 --0.6408527994021547 --0.10254385800908311 --0.5976435364007443 -0.4410329920924874 -0.8656455405024964 --0.010432848429565945 -0.4706749254046249 -0.6713552818663189 -0.8563484466878015 --1.1856523210969858 --0.831524602173476 -1.128334768495598 -0.5838011394243461 -0.20952374017054087 --0.532390127132173 --0.9197965362634837 --0.14788108923300197 --0.3925897894362013 -0.4542615690125906 -0.16266407188852547 --0.32123089165248936 --2.1813573471267134 -1.5982013463238185 -2.2414529787539337 -2.0918547289782543 -0.08341008274402842 --0.5153755676354805 -1.4453869908437937 -0.32598187089123554 -0.5436119064789725 --0.3584612345171701 --0.5763860787370773 -0.6681149315825492 --0.46150984303255077 -0.937285299758236 --0.2098979405270315 --0.07164712401923368 --0.3068356315042299 --1.4001619912112477 --0.9404694741254799 --1.0935250149061801 -1.1679691375745216 -1.015411900739814 -1.1718326097723255 -0.8017752102771813 --0.9931793875258994 --1.304486591269489 -0.3062454564319905 -0.4306035155559993 -1.5727111207558893 -0.2603988880173924 -2.023403089895803 --0.28412453957357026 -0.27829777210003903 -1.3051156973521614 -0.6012641715967781 --0.30650139182281994 --1.8838520015965237 -0.24224605728041568 -0.439329446674439 -0.9735286217351006 --0.3139513707910807 --1.0815354269762265 -0.6573166630333789 -0.7128864715807626 --0.43699609111468396 --0.10939165876018088 --1.603697083402384 -0.8237817309774189 --0.3713083690927498 --0.4247028632343067 --1.555673670781125 --0.5601139736090598 --1.2960893777659583 diff --git a/test/fixtures/randn_1338_2000.txt b/test/fixtures/randn_1338_2000.txt deleted file mode 100644 index 239480d..0000000 --- a/test/fixtures/randn_1338_2000.txt +++ /dev/null @@ -1,2000 +0,0 @@ --1.1795508248113227 -0.23881627869400782 --0.32402331387279626 --1.5125256648576102 -0.4074016774357785 -0.9411969429155745 -0.6679634455687545 --0.2357542701884496 -1.8100077897574185 -1.20923257970095 --1.2245245864313088 --1.7402986834728298 --0.776341030420603 -1.9962471004074342 -0.5977269604849912 --0.5488198878053789 --0.9674039629312488 -1.3959289441271412 -0.09802322593299466 --0.5305990416324259 --1.5696679018553283 --1.3697239875084095 -0.15898131106746705 --0.7757864298340018 -0.24735429952092697 -0.5944111966450215 -0.8636857883681502 -0.267015171650185 -0.42785980448859523 -0.5787664159036118 --0.7657071602173027 --0.9407368676891096 -0.733892086810584 -1.2595476362542315 --0.21121509919109602 -0.10355228728265006 -0.9198870597409878 -0.05070947560777406 -2.2312394037484617 -0.04995612632483925 -0.7572163716649194 -0.9078210439127207 -0.33290645206170255 -0.5312509127723439 -1.0748834083696248 --0.2953584831614772 -0.7959907123144467 --1.2544680924548604 --1.0379001958937466 --0.8856454602853462 -0.9339176728593492 --0.2446741080972371 -0.7462017067777763 --0.4908536095342316 -1.2657807811219752 -1.1057648015489823 -1.9342044056914993 -0.406813122667264 --1.1613503772690061 -0.48960773385032247 -0.787504970624462 -1.659953330076665 -0.3399247012088004 -1.0582382846821126 -0.3806181927772901 -1.7128516326528473 --1.4910486303926307 --1.065730733912472 -0.39403459478868375 --0.7385831334798149 -0.24588284087991027 -0.32456945985889035 -1.0274248884745607 -1.086454400261281 -0.4720125902930292 --0.07604367244214089 -1.2280596973770237 -1.3237185273860355 -1.0542958600699588 --0.9018169951995798 -0.5955010573616677 --0.24331836489257383 -0.18772539721557002 -0.25864464272713883 --0.9788906616275892 -1.3801962447426501 -1.6000686917732547 --1.733704492259921 -0.7296782983169965 --0.5384687606260113 -0.22134462005010289 -1.0337716794862055 --0.029528503806132006 -0.9963149187840764 -0.9965288030678352 --2.380417717589903 --0.6995492562966023 -0.3289679502074472 --1.9788141704905313 --0.5195379086557173 --0.008314126030703861 -2.1296158642832226 -0.3917721199367403 -0.3854981930083973 -0.3109178014877662 --0.027559514264398365 -0.3619535833535816 --0.5992799912800334 -0.017238094947327528 -0.4691942770153877 -0.42535323392438135 -0.21196970186351005 --2.768251936724711 --0.5041460623451313 -0.3653161051923304 --0.7656987253981485 --0.02281395363009332 -0.9386276081422447 -0.5582783763050974 --1.1188087283805805 -1.7387295131758436 -0.402533090633045 -0.03565310780617914 --0.35894012742166365 --1.6452709003962194 -1.7669685619074762 -0.8220658796245722 --2.169180031316974 --0.8482726401108835 --1.3254156443601894 -0.9127283855992507 --1.1281708921183462 --1.8638177769364435 -0.10158107657253887 -0.14778294948257495 --0.7443601827455596 -1.073567507374131 -1.1369179242827765 --0.390818544033519 -0.39470096629869444 --0.1047700187731729 --0.6902343229793798 --0.6716730441448935 -0.6288708594284952 -0.42462505443126686 -0.9710648268678397 -0.3311593767490589 -0.8052906346108999 --0.9539008994766971 -0.06186468263507273 --1.3144114085802778 --1.1529621791392408 -0.8260997048518782 -0.7348485628188718 -0.6060842722558898 -0.280682194807935 -0.5117047328711674 -1.531454744656615 --0.04672289021489107 -0.7848843053683271 -1.6250906574644703 --2.77618865463901 --0.8611279443521217 -2.3073695198543915 -0.03547868400982993 --0.9554726058402244 --0.36307775803967257 --0.15576966479246415 --0.49894066401032205 -0.7395911898163205 --0.493421725754294 -0.022726618586832982 -0.03284684259074495 --1.2264283446785385 -0.16630243683396317 -0.9579664078392878 -1.6150068875852148 -1.6706157392406786 -0.35819982802005657 --0.13995150769149978 --1.6066515231582879 --1.3216255587081367 --0.008444759155546398 -0.7070205520803128 -0.15781961275156345 -0.7571333484278715 -0.5911229278815855 -0.9522208286987395 --0.38199544203888924 --0.46900663206281523 --0.54661582213044 --1.4044082216593978 --1.2681806790555101 -0.11933589897897509 --0.56494174240081 --1.2975476686942686 -0.4280114972274069 --1.0658621081323127 -0.7619088622462992 --2.171818426832829 -0.0070836444101342565 -1.7652484409920277 --0.4505074654107677 -0.5685704576838694 -0.6855931998106625 -0.2975543943296682 --1.2856125202235824 -2.039317746278605 --0.6274328696871594 -0.6871751216707915 -0.8841515183762695 -1.7024102737104965 -0.8308369879689426 -0.1633495384437657 -0.6486460977963169 --0.48857343380039187 --0.5261738185531734 --0.22146083012922332 -0.7013737686184432 -0.06181112692424272 --0.5489793346491149 -0.3851349921918649 -0.18615342048285888 -0.8335484198772612 -0.38432773857049934 --2.4180088201143053 -0.8811124224394807 -0.5260807920289211 -1.0962571518000388 -0.8712879657196435 --0.9570776733458883 --1.3809679155793622 --0.3428355037755586 -0.5030280048952444 --1.1649136287187745 -1.4123484081365405 --1.5150716445918662 -0.1947810886901516 -0.8099253324459579 -0.15855474675960754 -1.0558756040498443 -0.23915170754090162 --0.7111188223934997 -0.8245375405590556 --0.40616291975009927 -0.4415736151134 -1.5093176288706867 -0.4251780291189002 -1.0765476398409402 --0.8284587462540971 --0.881047462475927 -0.4881067363414829 --0.2238932274105676 -1.1373979581254445 --1.6032487271690967 --2.805490003320634 --0.5311263737358355 -0.14540478029306478 -0.45090747133704223 --0.584770204119463 -0.8861365079839977 -0.9809753354012726 --1.2248294706028198 -0.899406941704286 --0.41434892974171633 --0.9373631301856112 -0.121159060938287 --2.4087892361258194 -0.9324665004246098 -0.8949649156989375 --0.5167946833240935 --0.7699917472660802 -0.7889612217857098 --0.47370607728322417 --0.01484335022732285 --1.376701790724774 --1.4006791539728192 --2.4862634837091395 -0.49034774803951203 -1.567544081375955 --0.27408388746818935 --0.9836665140011218 --0.7911146065432437 --2.2262534056898233 -0.623267698162379 --0.2693471043864522 -0.8626985176305964 --0.9655466317020667 -0.9721452430253157 -0.44459344317514965 --0.28417987983892984 -0.11645263706236456 -0.5165305369306105 --0.35584568689030266 -0.43739387726075013 -1.0705103253768125 -1.1542173591446363 -1.469558045982606 -1.5539778560949231 --0.6442222158399463 -1.3841450319434425 --0.26115910465273484 --1.5375444121475048 --0.09068032908715831 -0.9024516803015639 --0.38835709067331076 -0.4204585222986648 --0.7909093790842154 --1.0957491867798164 -0.5998513969590471 -0.40095790594326364 -0.2595358389262076 -0.2640541499214002 -0.048416969665084936 -0.4904913316070198 -0.40935895614560464 -0.17003174671875948 --0.5895711581211193 --2.146193641255784 --1.1321888339456458 --0.9831374164742067 -1.3426497611271886 --1.1651833538583405 --0.018439500469002328 -0.205151315426942 -0.6366541404949648 --1.4718485314461114 -0.9078629074881664 --1.0662634357231724 --0.6745923247720895 -0.9163875852246933 -1.032384868568993 --0.6922041587676544 -0.1712619470005825 --0.4434413002842456 -0.5273886896131607 -0.355013480095884 -0.08793415182732782 --0.5062354167376366 --2.457193715912134 --0.3370313322056735 --0.27626896469331125 -0.2608082974541609 -0.3269494174075891 -1.3943129972580968 --0.018875503207382027 -0.00235084399982048 --0.5162102477766862 -1.371040740087552 --0.4525850972874441 -1.1165248337451856 --1.5675494148308498 -1.1974224276577543 -1.8914768716003092 -1.3765682894378566 -0.240050798824964 -0.05896390745836525 -1.3258465553009655 --0.07935985330610378 -0.08978435622774603 --0.7026456594517156 -1.6840291350109038 -2.001126633293056 -0.5701234904348061 --0.2882992262607996 --1.5457821829086171 --0.43791680521183535 -0.1721855622455344 -0.09463047531252052 -1.0157790105385034 --2.6026546060844513 -0.5658834753552895 -0.7074156302126161 -0.5643845686426064 -0.6474833986763338 -1.3911450735829225 -0.09607511528115106 --1.34804112790014 --0.4516976983534223 --0.3844727001593727 -0.07814121293152881 -0.6367644745485664 --0.4131510054450941 -1.7356550452946213 -0.6340419662692108 --1.8571192293008378 -0.9308881580668793 --0.8812450946629293 -0.39832117684634677 -0.09192562591548858 -0.22742284525929848 --0.16985744233701142 --1.529986049145668 -0.059035484994924906 -0.8826673427202666 --1.6120337839485646 --0.2966094837269922 --0.6176480010362193 --0.49076735246089226 --1.2072085177866474 --0.10838294752622504 -0.6572021208224149 --0.34488901998921007 --0.3260051117230435 --0.0585957797537921 --0.822720400235995 -0.08883024559542627 --1.1127142518181687 --0.6226700634288215 -0.26165693076520463 --0.07032989077579435 --1.5176139164366362 --1.5535070233910313 --0.44989366176464324 --1.7603510218533627 --0.6198243614905404 --0.28481730018575974 -1.1818261329102502 --0.1629207770645953 -0.17488433782281232 -0.4788041959116688 --0.5213065010772916 --0.2707168851396282 -0.7188486679300687 -0.9628731503070297 --0.9855264601292126 -1.9201693852402297 --0.013097318314656494 -0.23366993795289606 -0.10594469334518176 -1.3681638573505346 --0.770776858960317 -0.9636675662712872 -0.785652869798697 -1.2970595258085245 --0.016378839742404033 --2.6819688583801438 -0.8282867856826224 --1.0761753420663396 --0.7733385711404275 -1.4792170039613892 -0.6842636250214218 -0.03128357706216367 -0.3377376847539596 -0.22382724503738372 -1.9547066102374375 -0.7398279312865199 -0.06672414771162116 -0.5718213930607255 --1.8705246691226423 -0.8621886968962997 --0.5522702061194786 -0.031443779031685035 -0.7715370224844899 -0.46892899979381886 --0.2653594004737416 -0.1288193343099926 --0.20809927142162807 -0.3163642652997494 --1.3660640157433939 --0.8701583292375143 --0.09584039284366593 --2.99860247459666 --0.6186965886158654 -0.1537669653258225 -0.43420451498485796 -0.5504432630585091 --0.8643119125885843 -0.3655195921904797 -0.15408309428587807 -0.3603777249180772 -0.7557777394082653 -0.28256579218273664 -1.2170163273350914 --1.1646944473140848 -0.6091078790391339 --0.2516405920740501 --0.5353474566853664 --1.0659295338641765 --0.06949324281378354 --1.2693499273140765 -0.20198532533076435 --0.5597308417420228 -0.9298056523267724 --1.6213613903059472 -1.0876553427948223 -1.4051389376782704 -0.4804013692874772 -0.11527564384925458 -0.04545935934732778 --0.17920858985721067 -0.36756571528604726 -1.3374016197101344 -0.3095540731160813 -1.5388008299339846 --0.3280397036826063 -0.4267071886502875 -1.1393604538145352 --0.34564386511228506 -0.31546987635654533 --0.25592012616455223 --0.714133137302058 -0.14436765916205285 -0.42747640851598756 --0.1394614741493893 --0.19316456212138006 -0.27251665412947856 -0.12636706298368786 --0.7374202615081008 --1.05079061659657 --0.0408659801026667 -0.9381190201161363 --0.6812320950001998 --0.21996750123330647 --0.409573305972003 --0.42921807170673565 --0.25647278667157974 --0.8393912248099372 -0.957956675025317 --1.0273424721600795 -0.22134521588405837 -1.0957831656767782 -0.38307573015635665 --0.34603092639443006 --0.7285876794294021 -1.021726581806725 -1.3580571436429563 -0.13764947979267095 --0.1994956191210865 --1.644104747126995 --0.04331798188566413 --0.31509540683722476 --0.1894831126961036 --0.6101671135236354 --1.4789345070052495 --1.4086807979055163 -0.4643943788138841 -0.9737126094702748 --1.235436334614122 -0.06685549537069561 --0.9497948005953908 -0.23974666556171972 --1.0876614811547192 -0.9337030043756402 --2.2491246681012003 -2.2179552654334844 -0.6728358048206512 --1.3849914837852526 --1.0881117123721358 --0.23709961562761223 -0.48619041756732745 -0.522299128762628 -2.2588298384996683 --2.0518500390548713 -0.5693912777799938 --0.30201420080869384 --1.4067441013234339 --0.026048531892109917 -0.8863395446436261 --0.5662816665770861 -2.616166939242479 -0.4674669070559898 -0.3695751188118021 --0.6149957420610482 --0.5100877313746347 -0.06418991781133236 --1.035108414743924 --0.17061412181729085 --0.30224313134078745 -0.5278580536836278 --0.8020474505274869 --0.8271461670807205 --0.06273303226221633 --1.8477716582484334 --0.05229864697678145 --1.3756087859089452 -1.1846363049153639 --1.7266365577921639 -1.3739825613612302 --1.1233851300808892 -1.0152033219508512 -2.402752309076421 --0.15020828068591588 --2.509330257823739 -1.659763090369753 -0.3950877548278731 --0.9597427494821376 --1.466028252397514 -0.7753644673986206 --0.6471307714003256 -2.100070072053955 --1.1419669484024373 --0.7459552068391003 --0.6360709807730233 --0.540539717978462 --0.13649074437003625 -0.3955654742494263 --0.984303875989401 --1.4172354726772352 -1.1473370859922405 --1.2358673871775316 --0.2116177253555916 --0.7797723148528266 --0.40038020154082804 -0.28661467573334987 -1.659244294201238 --1.1415237816578496 -0.007840230073051421 --1.415707923372711 -1.0521163972038794 -0.5821614651032391 -0.2844467321348128 --0.8761791219697685 -1.5381901552189272 --0.9669337063701712 -0.2097094251977123 --0.5548631923838196 --0.20800633152418221 --0.09234582650526581 -1.0041528936469026 -1.279053637208281 --0.6561051693929278 -1.286010531565794 -1.6225478853665123 --0.8259006295687403 --0.5116646565602604 --1.353922999940288 --0.7593070826220425 -0.14623303305392385 --0.5470501859095395 -1.784536596441115 --1.0746931741374508 --0.710934301988908 --0.12333133171848247 -0.19879845716624703 --1.6207210130502536 --0.17041294591237713 -1.3377180192978904 --0.2259812313534553 -0.34695275206487175 --1.1533655323349508 --1.236508462761664 -0.914763885081122 --0.7568347595097983 -2.518420145662077 -1.3536661665664718 --0.10595893134204958 -0.6753314558599125 -0.717894487124725 -1.9502369988496568 --0.07000971895438732 --0.11966367843441464 --1.0066423135450742 -0.8130027856301097 -1.7692089143067582 -1.4266989424305794 --0.03904638672250533 -2.396300912458431 -1.3443605060970525 --0.7242145297528696 -0.49480660731321496 -1.2147625978999703 --1.0330736632757611 --1.03635677025767 -0.2575953410828822 -0.5300336478910551 -1.8006386802157417 -1.0742295572364302 --1.3810076749458635 -1.7010511730211253 --1.4199991995061017 -0.17010984205456378 -1.0725990677012425 --0.2361693352023541 --0.3103836774165471 --0.011149828775240154 --0.1620408149519962 -1.192072245929976 --2.5025774504116645 -0.04805388134229276 --0.8630712182359939 --0.7342923907304312 --0.30315978275586086 -0.38649746465247187 -1.083032050191221 -2.1444758308790353 -0.8094232771360143 --1.7694482916064318 --0.5962493560225081 --0.9431607278049834 --0.8785457727055278 --0.39971863489595455 --1.6084314870492338 --0.09970939994085222 --0.6771833767288986 --0.15339245325031925 --1.1765999345396803 --1.0322845902514983 --0.3460273572163869 --1.9836261818066676 -0.27970865760180963 -0.4529732616780544 --0.4904761143050764 --0.6501588615116196 -0.4118492273107751 -1.2032767865582694 --0.5663575290149921 --1.4480762177651623 --0.04254227851992861 -0.2840474892581342 -1.351845436652141 --1.667368777021518 --0.47584499209155773 --0.4226060485169472 -0.06466579403851644 -0.36758846253043115 -0.8350514705859532 --2.5069277053212633 --1.2443654980166328 --0.8868372329483153 --1.491956189944975 --1.205195920910607 --0.34877357424581756 -1.599920947898087 -0.9679727030682417 --1.9038407037165428 --0.6826098669197608 --1.5439721294718782 -0.41115973325035626 --1.4009170505993334 -0.4299948671069018 --1.3679737997552979 -0.18705915648720034 --0.5443022896062676 -1.0379393831349648 -0.3021299075864346 -0.9651965003817886 --0.5444771508907401 --0.515411117924281 --0.6946875270281964 -1.1012378852182538 --0.8772427890071076 --0.7673931941045188 --0.23348513683132957 --0.09998227286998267 -0.9556617386999509 --1.8410600104395913 -0.4357106189854544 --0.11771040518961845 --0.3409720431996374 -0.5038664144748385 -0.2600030433237901 --1.5838146856545874 --0.2575593318442379 --0.32386632703164464 -0.5333628752494952 -1.765380143041226 --0.7783686442436637 --0.039674268198615 --0.6996279727670249 --0.5739811776715594 --1.0406143787277975 --1.0531482623354256 --0.4740450510712034 -1.9908115950030147 --0.9060421186616333 --0.05804325912237507 --0.2725889102864987 -0.9888005119710871 --0.2661579636562508 -0.26016918811876594 -1.674862707518217 --0.7577226897996832 -0.8924856893510589 -0.07367510414168749 -0.333436514276029 --0.019106270311869313 -0.43379552716687575 -0.2331256698581858 -0.3499781493491189 -0.49152686703291376 --0.6730216347102536 --0.1867984700346427 -1.7218105312592495 -0.8891467789338461 --0.32715617617354414 --0.2072405908111532 -1.3373285947709317 --0.7680084543035284 -1.1730598210695817 -0.7876015514738426 --0.3011008105632105 --2.3129161610785265 --2.0415954226305453 -0.9659752462114978 --0.7029923447014395 -1.224113079164076 -1.2164836938734183 --1.221432470216199 --1.1736205008624514 -1.1960864239351023 --0.08595067417948479 -0.8975958840482579 --0.4986056838816074 --0.7440394716645371 --0.45654934022070814 -0.8942297476098572 --1.2625834755822047 -0.32428946911215883 -0.5152694842902009 -0.17351593193847115 --1.1734724249466364 --0.5500162483289 -3.0467763478623127 --0.26342637997848306 --0.49046925264638147 -0.7914841435147048 --0.26574067389342815 --1.577752592845413 -0.9934573941208673 -0.6939333404064466 -0.8607139437809571 -1.320350505035688 --0.9007125137099873 --0.5873539366668296 --0.140532697170491 -0.7336582787243678 -0.38063047173453396 -0.2608762997570115 --0.7308902128759984 -0.631236209075486 --0.06583011498997707 -0.24139953909807432 --0.5745789555929914 -0.7798327110745058 -0.8224210779089509 -0.5828355571646342 --0.8401675929638708 -0.379864676867864 -1.064692678585708 --2.0376302151786185 -0.5427550528987083 -0.8661464824298863 -0.19507674754812035 -1.0682797597205633 -2.305890534765535 -0.3181225380488922 -0.8388821342916134 -0.173531981595558 -0.17301363637551984 -0.48042623269349316 --0.08468465453029105 --1.381490379665962 -0.22164992163926245 -0.9094413015065956 -1.1642360446848987 -0.17203273799590277 -1.5918395425064737 -0.9993288732496101 -1.8852426184897466 --1.5677045558449962 -0.4037509454147867 -1.152471554798656 --1.4821372208781836 --0.3234371525781259 -0.6670007825708307 -0.14807388676844443 --0.9652096319950577 -0.796664493917673 -0.8960070449393269 -0.6275853876357635 -0.8540913086546241 -0.01635596726207477 -1.0488986637377993 -0.08105550975614291 -1.9517247082531533 --0.1625803045637029 -0.8699582289397644 -0.4202463835318456 --0.5652867885067577 -0.8706181080805441 --1.114311461054736 --0.6114207966874199 --0.35817536811376033 -1.143616415454536 -1.4751318105384308 --0.08802346939316959 -1.3457972064366401 -0.5576404978472377 --0.2574036416736537 -0.6497750385069633 --0.21485427478095798 --0.46146740964197736 --0.24185612878303467 --0.497976391170236 --0.6090504869035445 --0.40334592110504325 --0.276226753052357 --0.09855300206077436 -1.3460346612415006 -0.19953512792090297 --0.3934638777284924 -0.7807948290733628 --0.9057268764588027 --0.39547931448797674 --0.28665692807569354 -0.45377048762570726 --0.32578651055503033 --0.05605861913758938 -1.7380624319383104 --0.7959646853820225 -0.12596298090031546 -1.1270186889507328 --0.26676217457090035 --0.28336044949697764 -0.31366121085674176 --1.4035197744297558 -0.6567635122000249 --1.3680050209724979 --0.22205125201300738 -1.5257178015389576 --0.9559424095688567 -0.8964343294625273 --0.6640390397501545 -0.0983771964223399 -0.47191949719556087 --2.0695343559048576 -1.5848716777445548 --1.3606345799818718 --1.5678746097530532 -0.6601911977665759 -0.10609674318129061 --0.912797243255628 --1.59267926312491 -0.6021294831448231 -2.308355135012653 -0.19988209216049174 -0.9834817094532045 --0.24854378616587547 --1.7623296211030473 --1.1291902664695157 --0.1703069014866671 -1.5472526294593039 -1.2902963121756925 --1.2770090744148657 -1.246257412962375 --0.6846217176376207 --1.3086252703019394 --2.9737326785860407 -1.426202256515168 --0.1198929827782466 --0.28793221391028156 -0.4772763063967437 --0.5761880570119158 -0.01909924674229692 --0.3079641907474913 --1.6445152098187739 -1.5724477258146494 -0.5940126477373767 --1.1355329251482824 --0.17482369665373115 --1.0149301294547162 -0.2221125298639672 -0.7785728601685825 -1.2326654305302036 --0.517045227518436 --0.6864429534103138 -0.4162719167441355 -0.30364943352260154 -0.8726382190020653 --0.8640078558729717 -0.2122228281348464 -1.728018765279818 --1.000686814555091 -0.3303929647068149 --1.7404525301202667 -0.1155373005520703 --0.43948613385555113 --0.6075962856555716 -0.8280100258568014 --0.5200280327382388 -0.40702642057519955 -0.6664674782149614 --0.44496790616483145 --0.37657454469405416 --0.14638217568072873 --0.6289835991986024 --0.960893934538116 -0.914875417729035 -0.29812502388478607 --0.8173803622828598 -1.758711826869148 -0.787409527690621 --1.56814918797607 --0.9039670551173336 -1.4817697996345585 -0.8834393866484499 -2.8067033890181543 --0.4288100654672822 -0.8191576889288471 --0.004977412487087618 -1.622074589050228 --1.676815173225249 -1.4875485325699278 --0.22736263424693823 --1.123056136788669 --0.5782386832623886 -0.32645354686703965 -0.21250018438256413 -2.2360595130695167 -0.44964304956015483 -0.18765781900376063 --0.28709011793144706 -0.590779024265185 -1.335246407222348 --0.2005461798605781 --1.351777533351968 --0.8155635017083046 -0.23105528884266183 --1.545002395145894 --0.06448057139653655 -1.5111827146476922 --1.0441379500412131 --0.9325321026376768 --1.784819064579493 --1.2142332333556067 -0.42975166768118067 --0.8597358916473475 --0.39516614744201795 --0.7094938664604596 -0.16067255545442388 -0.2055148380844661 --1.3041288216069116 -1.1149733418738959 --1.233871896379551 -0.5940970953377946 --0.26340145212068206 -1.6170995761371634 -1.562198660074986 --0.6503057664148528 --0.7342294443286311 --1.9282072631498322 --1.5912876573011479 --0.03850714022745058 -1.9669744473204003 --0.6715161535682443 --0.28650849559645075 --0.2042371795045941 --0.5164300983133809 --1.2407424830841638 --0.43215124146942796 --1.4726152890951154 --0.025870347906826335 --0.6297705268888737 --1.2871077035208736 -0.27843001596714 -1.2677901400759055 -0.33747928707602004 -1.1914286737532434 --1.0318683552950725 -0.12409546925871885 -0.09104949839134176 -2.0701933077073646 -0.044983639325644094 --1.2008781667692625 -0.5537446598898582 --1.7793634852330993 -1.3215647790283571 -0.3487171898216382 -0.07820021386839132 -1.2906815262065625 -0.04560869561791764 --1.9010125294733358 --1.0647119603808461 --1.0649123944770134 --0.7038510625996451 -2.166246790608185 -1.316721072169139 --0.2219720139734419 --0.24797510217881719 -0.7437859795891925 --0.0941288908488718 --0.5596826872071474 -0.38284556470960085 -0.23120385572745508 --0.42093666279374115 -1.0866555781957 -1.7908967655348877 -1.2383199183912579 -1.1572736399346684 -0.3164243126073819 -1.8235599345590197 --1.5249028163261589 -0.16229571350403177 -0.5151555141164362 -1.229387822641603 -1.4109317376259713 --0.008434558643388155 --1.5313033531448852 --0.3136877912306137 -0.16991214219725154 --1.4356615356925189 -0.9208950577788861 --0.04363522650928384 --0.290244413303866 -0.20118453999694072 -0.06790686761995328 --1.7674912725064826 -1.3814626035325432 --1.1990777902693348 --0.19397538730627323 -0.8944065222121351 -0.10695192216336706 --0.44149961451000147 -1.020811901974865 --1.130807121447164 --1.284806807703917 --1.59048421933078 -1.7537046194448895 -0.5017275365148594 --1.3995908025918828 --2.936180375026366 --0.16797688796736387 -1.5279333720851078 --0.1915753247618557 --0.3911742462852612 --0.36763958105643446 --0.6883505150965914 --0.8573086653099521 --0.40751206012110974 -0.47674377925542977 --0.4536968544632742 -0.2806702937616789 -2.357480295531271 --0.040047149416597594 --0.13282112064219337 --0.3607202802864383 --0.23137501147596898 -0.8388835025128186 --0.4528802380247082 -0.6068346821321341 --0.012114882833862934 --0.5292154378931855 --0.7530901366854893 --0.07569776545643965 --0.8238338751806308 --0.04377226964327764 --0.10893103211030278 --1.179531631998489 -0.6142661605924582 -0.939745558063598 --0.3561554820530585 --0.382555162239133 --0.9075723146152425 --0.00821136663982215 --0.17772864934460486 --1.029125005149931 --0.27647208871718587 --1.0125342202888024 --1.253321201441645 --1.0551374769098822 -0.3191687518745262 -0.6427142954048981 -0.15944619439498456 --0.9719034438761353 --1.6106632716261886 --0.8711875065890616 -0.2916390619476298 -0.7136376379224476 -1.3001926989732846 --0.2844267467499428 --1.0587174327555402 -0.9217006274950814 -0.7190742043436483 -2.3859606136004485 -1.036186944669198 --0.16005699745391308 --1.3318827058800995 --0.024896473832485992 --1.7017633352556478 --0.3532293262138452 -0.19808642642903201 --0.9702938308351452 --0.3891886336669222 -0.6640239101655732 --0.4967102881317625 -1.7038075083501913 --1.4708922500927168 --0.26388491069180525 --1.1646364641871325 -0.6097740224184993 -0.21776165825662905 -0.8001629261643859 --0.011083078657437927 --0.8641680035050192 -0.06075159947723873 --0.03788888538391068 --1.3080181798899901 -0.08559977194378857 -1.013863005976869 -0.6836606928738479 -1.5530851797005616 -0.4421526384597069 --0.19919212651228588 --0.18005351174502165 -2.5153716495252505 -0.5437283114801545 -1.3029546215822703 -0.7235126629046074 --0.4407248083830273 --0.6352099764755664 --0.34627029076239363 -0.756435954410239 --0.3127589748615888 --1.3644950031377623 -0.801170357282637 -0.9964216068070031 -0.33850558146731224 --0.33647591992805753 -0.35819995653009573 --0.2472834536883848 -0.3861732064060656 -0.17161706858250705 -1.0043436836453137 -0.35736234157894065 --0.20682626915950722 -0.6291479290819842 -0.7931215311330008 --1.2009119269570443 -0.610073271930949 -0.08186031388714964 --1.500820127297202 --1.013766126228759 --1.018907062277749 -0.05872433332158109 --1.2226949721680558 -0.8122126671514726 -1.2169307308076514 -0.5594170812188854 --1.1064148101812792 --0.06732251853517582 --0.35341861058596175 -1.0987512221757971 -0.898281837120569 --1.2993414662281002 --0.9419492286309525 -0.3221329846287746 --0.12913503468079857 -1.050736933725846 --0.7164406254371052 -1.3956193962076104 -1.5451494564420036 --0.039592636185014525 --0.12346535468864454 --1.9081710542752306 -0.5264712373346063 -0.7789115187651097 --0.07342524794303763 --0.19966865105549061 -0.8268681429504144 --0.24823465165366243 --0.07580010568410359 -0.2847715629640134 -0.7169652983907814 -0.31022705085672697 -0.3001257084300242 --2.5764410349189015 -0.443385087593236 -0.8409341887481778 -0.9743824230824696 --0.4962043005118214 -0.5652340631470694 --0.3734985764928792 -0.6441119646742045 --0.9564652892270755 --1.1569389258532061 --1.8633667727872663 --0.17441233300206826 -0.9335035579547556 -0.4591392138111948 --0.22783075255151844 --0.021909300768240138 -1.675919468053449 --0.45827504353240583 -0.15405906403547556 -0.834087503926544 -0.17657695883468488 --1.6436281811369429 -1.1341509570313253 --1.4570936272590371 -0.2766468699131177 --0.06636089657529758 --0.9989055050998359 --1.7263808798612321 --0.568987047559592 --0.06437937569745539 -0.5452554265093932 --1.8527412874333853 --2.1904393536169815 --1.8307574503946715 --1.4054547193715015 --1.6006738814445083 --0.7907620579710154 --0.6865940109740091 -0.19474479300923775 --0.6938784371895304 -0.02320559138653328 -0.10619526154137168 --0.6429462489790891 --1.4482875456846065 -0.7453032697764325 --0.7318609651889569 --1.6624844626091122 -0.6383305794741865 --0.04508138918385642 -0.6788402640803648 --0.4569273065566205 -0.0215810741543499 --0.20779188754204533 -0.43252402295632153 -1.4066265852102613 --1.1462336879989432 -1.2275901079131122 --0.9028572703764762 --2.0258975972216757 -0.1356579904123791 --0.5126067829677503 --0.2777573880000188 -2.1750720857555113 -0.6627264067344015 -0.08764816849530058 --0.6914764552876684 --0.5422997824321398 -0.9785403347790368 --0.6362555921707846 --0.10896659731545834 --0.8232369691978366 -1.9875438482946655 -1.2353473676785673 --0.8105362271124678 --0.48359239196200265 -0.4813619282559734 -0.3743902467386655 --0.8760163618306178 -0.13431795079092687 -2.144063913848534 --1.5233839930047663 -0.833742977045824 -1.4266047752182338 --0.3159324275679575 --1.9502623102128107 --0.7149073423436187 --0.49019709631198505 -0.2836165510908902 -0.6482944958475448 -0.36933722560776255 --0.47440695117946924 --0.3805787847031372 -1.8016185516265188 --0.5347964228547178 --0.48343968456802816 --0.3083478713903164 -0.9041761604103526 -0.6229588772952072 -0.2000734728263959 --0.8862381390832687 -2.270746052022208 --0.6595784167580075 --0.4602047930317738 -0.4156017191831668 -0.154234569876112 --0.39976959222443337 --0.5443027611114076 -0.3225454883305375 -0.05370249648474074 -0.6413879581317119 -0.9628319686523061 -0.7951287979947468 -0.02322184708841108 -0.29437242273146946 --0.6651546168656641 -0.6661979629234913 --0.18947079788925145 -0.34706000057154685 -1.1440957911516463 --1.3221594747847074 -0.8716426981422227 --1.4877290569694226 --1.283236939141582 --0.7454958054007276 --0.5353353350007295 -1.262802065637661 --1.0035514406845725 -1.9109094342360993 --0.14248242663533012 --0.003509041380938821 --0.23762567921231006 -0.04643117725008813 --1.7123529714097563 -1.070513272309909 -1.1075301634869419 --1.5400619574209926 --0.28117769269559517 -0.6389579858650669 -0.6083371045127737 -0.7248860705373198 -1.0994272849990339 --0.44531392932872593 -0.11737345112848407 --0.894784257058975 -0.5415608387734889 --0.01981962621024629 --0.27223053905725064 --1.2323732883273422 --1.1047096876012548 --0.8712050398948586 --1.5141506191030063 -0.9795777294291732 --0.20581928348244036 -0.339334020871488 -0.9216092764780145 --0.11162603801796639 --1.5903486999424907 --1.2268348918912082 --1.3191593120775937 --0.5898072111508982 --0.9915052298383028 -1.053025961980908 -0.13699146605775714 -0.31841513740447536 -0.3940956871816018 --0.07266102689352873 --0.06010055000106216 -0.6505897064474009 --0.3920768378465194 --0.6199419935509117 --0.37254592062807185 -0.0032413184094407794 --1.9510175476971319 --0.6467578041061508 -1.0730894846083638 -0.22759160098646017 -0.9864092065367882 -0.8638880689629655 --1.1912968018095969 -0.3596697824059416 -1.4948459899375326 -0.22995190020283013 -0.5972653437030984 --0.9790285562046752 --0.605110703600343 --1.249721952019288 -1.308489479966871 --0.0001108162062743855 --1.238132751351871 -0.05090602571439172 --0.13646416119964103 --1.3961892551578101 -0.2734420139227691 -2.0495719427802546 --0.5486575430050381 --0.2940005501259546 --0.13527554480717122 -0.07529721551526158 --1.897577889249478 --1.6152931815720364 --0.061715152947580676 --0.0026371072374548805 -0.3349146779143027 --1.0059535399292423 --0.5257812404578797 --1.4204970503239995 -1.0869520333448262 -0.9959319715411908 -0.6045989392987644 -1.9637800856779328 --0.32732767633324855 --1.4384887747578377 --1.294320251165028 -0.21308889604617418 --0.018963914472409978 -0.34195523035581704 -0.35177781973246375 -0.7938463880600393 -1.3758167750356025 --2.6682216893127477 -0.8229823070242985 --0.5515594615617548 --1.0037978539426249 -0.3355750995781599 --0.46313729210112514 --1.0697491327583626 --0.7501355405806498 --0.33134395319525606 -0.18195168202040607 -0.5244300026470116 -1.855798676593834 -0.5206589244464028 -0.5324268828825228 -0.47909970691450326 --0.9615365622608436 -0.02439095510306773 -2.188238787145265 --0.5463183231153862 -0.7022423673426341 -0.5913026595966744 --0.2099874175207648 -0.8237493658133241 --1.7927363828441625 -0.4727293589835944 --0.67251951675212 -0.28835451011834573 --1.2514832237922504 -0.2771637763828996 -0.47421045663070627 --1.606072794011078 --0.4303398908840116 --0.5925609475565813 -0.4695707320161331 --1.1819463354780244 -3.0074225998370574 -1.7680179501777848 -0.20221296338510514 -0.1343745273003447 -1.4555834288712846 --1.0190653720047524 --1.195392696371854 -1.1542979946703618 --0.5200636093060239 -0.019081116372842242 -0.13849356077257297 --1.4024877695563782 -0.5462250391997561 -0.8569035540598376 --0.6968815715220605 --0.04829677026216056 --0.3848206545052504 --0.9517584765423511 --0.6296205309436816 -0.9733950918212547 --1.4397147808576487 --0.6312806336518618 --0.4115884164514368 --0.03321577924645697 --0.9601181218276515 --0.22555205332928752 -0.06379034576431641 --0.30322863046554765 -0.28953642226859333 --1.1862855792418912 -0.26288167794678485 -0.17978252840091552 --0.5534462828382061 -0.3416721457827705 --0.4651256628543398 -0.7269836100516522 -0.31605344984261324 -0.622108811860084 --1.046772633738407 --1.0613129284880103 --0.35306515944753614 --2.1735338181389676 --1.2266086771446045 --0.4751110885187607 -0.4557705198591197 --0.4177940699224944 -1.0035846770916486 --1.3252391128541277 --2.6468637391938796 --0.5934048918582423 -0.5952198076517656 -0.7965053070876944 -1.2820003134298008 -0.8108034326033569 --0.46488139030189435 --1.8068530800587883 -0.8912667349129569 --0.13924000592017308 --0.9939233142450442 --0.33422039747675913 -0.1747420146981618 --1.4579087528185743 --0.550681672712431 --0.42267293658801114 -0.4089222699991354 -0.9607343492946073 --1.4890178848307216 -0.14788606498035867 -0.18393605942056285 --0.3016575139036117 --0.42313107409351663 -1.0190360671623044 -0.6207987479431303 -0.6793341159068816 --0.24926164894330735 -1.1766224359091284 --0.37560874578893366 -0.3719556048237799 -0.5690812729016517 -1.0189863954811653 --0.07635781476287708 -1.8246120023365826 -0.7259699604163298 --1.0147590012488608 -0.40120912378224594 -1.9789124789652777 -0.7396869476260163 --0.9567233482598956 -0.7289073561668715 -0.7801791343434502 --0.6786444311280736 --1.1356235932253291 --1.088707097046943 -0.8350996564241923 --1.6792890022594222 -0.14444959902077786 -1.7570259815979445 --0.13570945449549823 -0.35496684239499 -0.5294026009864603 -0.16248274573923074 -0.012088163199730596 -1.3599000985851721 -0.0484245213222223 -0.0919239755794123 -1.2966857077206746 -0.5232349993387848 --0.16763173848305077 --1.9470923040741381 -0.44873910703836384 -0.23224536324496448 -0.20553495375935704 --0.75707357518447 -1.509984238482066 -0.3852085588490996 --0.5198030501063323 --1.8503820267274804 --1.022781022538498 -0.5927538922603555 --0.6911868864721389 -2.4483748278132524 -0.04751154090161184 --1.546654508039355 --1.1702084685299865 -0.35937468151486474 --0.597524902334213 --1.4637138355719457 -0.6591840828742943 --0.21528284426097116 -1.1494588514044513 --0.02283315127573699 --0.38359726626569984 -0.655449197726811 --0.9562189286815415 --0.06383325470098199 -0.052999197194724366 -2.0902445158255465 -0.4122630835153249 --0.30657174473651155 --1.9456240899105586 -1.1992136905368425 -0.42990411757328134 --1.5238165142730802 --0.861401835984196 -1.9162985010311022 --0.016256735255066542 --0.5017284929667283 --0.03851834635099106 -1.981695504270631 --0.21236622785021703 --0.8872356558135184 --0.9138355481005358 -2.8736603436569683 -0.46703658903969875 --0.35852544811445036 -0.20161813858166774 -0.9850587604619634 -4.2138123249583 --1.1112807180004096 -1.6882360718818157 --0.1439839164184998 -1.5597453470333213 -1.8463673824870024 --0.2660712080789036 --0.8965586510094221 -0.1604180684913793 --0.2469726332395487 --0.5726314599305282 --2.132425406122593 -1.3862826401192139 --0.39089043889003944 -0.8573300790039475 --1.051465099913186 --1.5802564516538478 --1.3008999628414397 --0.48105175075705664 -0.6814892614221361 -0.9558691985224242 -0.434268637167424 --1.393705008416048 --1.8044946980374994 --0.34061545476776633 -2.8290376944874263 -0.06531450779452597 -1.5051307907699802 --0.36227778450678794 -1.5639190140572337 --1.2861959179563924 --0.2808117074381466 --0.2629722452244346 -0.23352425048984246 --0.4775610631305652 --0.28798572493991315 -1.4890548749070254 --0.4077865311095893 -0.04583106679501625 -1.0254861529475066 --1.320740799606684 -0.6355515821267437 -0.6405684745856561 --2.4128605124116707 -0.8390163131067663 -0.0037320371106253193 --0.3446983964893407 --0.11517895280339789 --0.4036072169867676 -0.7690586181508902 -0.8959580662350721 --0.2242061891166434 --0.768930855266663 --0.8093954973423481 -0.13604762728762268 -0.27344379822913006 -0.5754879792856229 --0.436483880819356 -1.8091723299356584 --0.1193258816553334 --0.8415043366168181 -0.6184204464111853 -0.4261762344196245 --0.20091147185855002 --0.8444103344825601 -1.1251749514212206 -0.9832861414699655 --1.5155067521086074 -0.11262944007451607 -1.228051789070056 --0.6537429187997161 --1.1284103237327259 -0.01877175285886595 -2.3237484474927843 -2.3638813389781697 --1.1656401614310476 -1.9746058453667992 --1.161773946663213 -0.7496265973062511 -0.48394471094702096 --0.4864204035615992 --1.3124104096263551 -0.48494428356756547 --0.48126106916216377 -0.708933397379511 -0.41314834944810197 --0.15458387356852496 --0.06922361425669216 --0.48279108580821883 -0.29145329230774636 -0.3224499763274041 -0.5421564285164592 -0.12298699232839781 -2.3974859560515993 --0.21260202990950047 -0.9756276491382464 --0.22370769241711333 -0.6674260156228335 --0.1289323764421874 --1.5374083692537437 -1.0832649431736348 --1.8422793922341982 --1.2028456943202244 -2.2727467304622757 -1.6541218104339659 -0.2082211441074277 --0.36528004743082765 --0.3348663375266638 --0.3450000454841143 --0.025266583659837995 --0.13878443692503256 -1.2417861781333408 --1.2671364658383584 -0.05423487035339599 -0.8899484537370987 -2.9651350463347663 --1.834905952231432 --0.6484296397320078 -1.3117425630824482 -1.1795395084204399 -0.8420003612335926 -1.341079437775597 -0.15220575676546808 -1.5039051285847704 --0.47362279186192646 --0.7887096151399238 --0.5807080279072794 --0.7823140818646771 --1.1726994914435516 -0.3018100801818166 -1.5397693039382265 --0.6364588683228299 -0.642102899002182 --0.6652417795049909 -0.8557618282509444 --0.9110322945113847 --0.28577000776269124 -0.6224131254942126 -0.7427151622114915 --0.5415305582893305 --1.115444603797032 -0.03537091414461139 -0.20981323380998884 -0.01283612485591387 --0.9981613651646505 -1.239483088483433 --0.4523906094583386 -0.5769606355924064 --0.3234600841900946 --1.018992509983464 -0.7740738539843606 --0.46739322245812254 --0.632460486843469 --0.4819749354935387 -1.2019343100843936 -0.11323315490024932 --1.6593042891121386 -0.35303137801367357 --0.8817280079843179 --0.5184734471336566 --1.556516407987686 -1.339441062665522 --0.6180413848020742 -0.9070168501514566 -0.187188671094152 --0.783302809112706 --0.4661890324001029 --0.8537071790266229 -1.0849821950871157 --0.06167898938588772 -2.0797366237959305 --0.14710286243167367 --0.8373648883564451 -0.9399492507729278 --0.8062496939347557 --0.680252255192928 --0.2143000631174463 -1.5459615647192946 --0.021890657441965018 --1.8145109586748702 --1.6271181546529583 --0.9382704529475581 --0.7174785851399963 -0.27002792114838997 --0.9016340961393927 --1.4011334138060634 -1.6340425285784315 -0.9611509058915783 --0.30849632703477536 -0.4063878946849955 --0.47332495299780547 -1.3496147304221118 -0.8012551617498438 -0.4104806317558418 -0.6736945223174385 --1.95774433972608 -0.8712235313372828 --0.16665038755318864 -0.2988102999322509 --0.143669354103864 -0.17998809120526085 --1.0132028958210304 --0.21739333566757923 --1.0861828592504825 --0.12395583693081977 --0.7594253867309773 -1.302091361959856 -1.1677793556577858 --0.4857630679438397 -0.17809168027727745 -0.3159108160601348 -0.47370849698772666 --0.9828199690188345 --0.5437051571311052 -0.7318298416704875 -0.14123172557134633 --0.8040826400437749 -0.5623726412653514 --1.075157477359375 --0.6311697902527733 --0.03099672839678242 --0.07133961054843711 --0.8675370075282236 -2.018199378677072 -1.1692943186450093 -0.9255723785797586 --0.8592445209506233 --0.046578099379909525 -0.20592173109257564 -0.9353416063037802 --0.41124284875700823 -0.6322249870367094 --0.16163065988679484 --0.239831394660254 -0.023527996925009766 -1.6578987898651298 -0.5116280937978281 --0.37389725022128784 -0.9407911301618803 -1.356574663979588 --0.3122776326956178 --0.49896570693254205 -0.1731715994054969 --0.014506170093003975 -0.2465138291235658 -0.001203613167539743 --0.3239826092848641 --0.2242814586532949 --0.04567747761065665 --1.3297122139883415 -0.03914657105890537 -0.5120826293701929 -0.264708571231234 --0.7089339694758252 --1.006696900728785 -0.7591135220448139 -0.593003000955443 --0.3005246696721331 -0.16449172623218777 -1.3283460176606778 -1.5607430817774552 --0.4534322777845912 -0.7594481458881015 -0.6610397553088062 -0.5500328636019487 --0.38540943675174033 --0.7035254106276332 --2.1495837257312473 -0.7221328375359383 -0.6026172528304454 --1.5811790590748052 -0.3062239938678365 -0.06220550839593449 -1.9758363197091495 -0.4399095241697214 --0.29057507857015574 --1.1496175260989978 -1.1445544133238337 -1.0460581211843463 -0.9779001114573403 --0.25348482288414337 -1.347600244432023 -0.056602594822393215 -0.3827522104569827 -0.9381546652662179 -0.717046210895257 --0.20258453766046394 -1.6512089114860522 --0.753012852887744 --1.0140776494129853 -1.1626295452606243 --1.175621082994374 -0.046243346191019705 --0.023219401793611087 -1.9256284644581418 -1.1328065131940102 --0.08158546793787783 --0.20702307187472552 --0.2176319158741729 -0.2922601745961531 --0.8894882445454682 -1.5888142286627096 --1.0193056247066854 -1.0069441299018116 --1.6148791713108825 -0.755009747956202 --1.7069934962704503 --1.6233523852305833 -0.034869320245691 -0.11147808595265644 --0.5621907014920716 -0.8240521582494308 --0.7377362720381306 --0.44059962816849196 --0.04922160420736285 -0.29647494453246376 -0.707815333910802 -1.0283102358458458 --0.2963704067204993 --1.0967744417591856 -0.2748802578067312 -1.7293681028891177 --0.9371537458291129 diff --git a/test/fixtures/scatterplot/blue.txt b/test/fixtures/scatterplot/blue.txt deleted file mode 100644 index 179b20d..0000000 --- a/test/fixtures/scatterplot/blue.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points1 -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│ - └────────────────────────────────────────┘ - -1  3 \ No newline at end of file diff --git a/test/fixtures/scatterplot/canvassize.txt b/test/fixtures/scatterplot/canvassize.txt deleted file mode 100644 index 6f00e7e..0000000 --- a/test/fixtures/scatterplot/canvassize.txt +++ /dev/null @@ -1,9 +0,0 @@ - Scatter - ┌──────────┐ - 2 │' :      '│ -  │'':'''''''│ -  │  :       │ -  │  :       │ - -5 │. :      .│ - └──────────┘ - -1  3 \ No newline at end of file diff --git a/test/fixtures/scatterplot/default.txt b/test/fixtures/scatterplot/default.txt deleted file mode 100644 index 4162f7f..0000000 --- a/test/fixtures/scatterplot/default.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│ - └────────────────────────────────────────┘ - -1  3 \ No newline at end of file diff --git a/test/fixtures/scatterplot/densityplot.txt b/test/fixtures/scatterplot/densityplot.txt deleted file mode 100644 index 491ccf9..0000000 --- a/test/fixtures/scatterplot/densityplot.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 5 │                                        │ -  │                             ░░         │ -  │                        ░░░ ░ ░░  ░░    │ -  │                   ░ ░░░░░░░▒▒░▒░░░▒    │ -  │                  ░░░▒▒░▒▓▒▒▒▒▒░░▓░░░ ░ │ -  │           ░   ░░░░▒░▒░▒▒▒▒▓▒▓▓▓▒▓▒░░░░░│ -  │         ░ ░░░░░░░░▒▒░▒▒▓▓▒▒▓▓▓▓▒▓░░░░░ │ -  │         ░░░░░▒░░▒░▓▒░▒▒▒▓░▒▒▒▓▒░▒▒ ▒   │ -  │        ░░▒▒░▒▒█▓▓▒▒▒░▓▒░▒▒▒▒ ░░░░ ░    │ -  │       ░░░░░▒▒▓▓▒▒▓█▓▓█▒░▒▒░ ░░   ░     │ -  │       ░░░░▒▒▒▒▒▒▒▓▒▒▒▒░░░░░            │ -  │        ░  ░░▒░▒░▒▒▒░▒▒░░               │ -  │         ░ ░░░░░░ ░░  ░                 │ -  │                                        │ - -3 │                                        │ - └────────────────────────────────────────┘ - -3  4 \ No newline at end of file diff --git a/test/fixtures/scatterplot/densityplot_parameters.txt b/test/fixtures/scatterplot/densityplot_parameters.txt deleted file mode 100644 index b25d753..0000000 --- a/test/fixtures/scatterplot/densityplot_parameters.txt +++ /dev/null @@ -1,20 +0,0 @@ - Title - ┌────────────────────────────────────────┐ - 5 │                                        │ foo -  │                             ░░         │ bar -  │                        ░░░ ░ ░░  ░░    │ -  │                   ░ ░░░░░░░▒▒░▒░░░▒    │ -  │                  ░░░▒▒░▒▓▒▒▒▒▒░░▓░░░ ░ │ -  │           ░   ░░░░▒░▒░▒▒▒▒▓▒▓▓▓▒▓▒░░░░░│ -  │         ░ ░░░░░░░░▒▒░▒▒▓▓▒▒▓▓▓▓▒▓░░░░░ │ -  │         ░░░░░▒░░▒░▓▒░▒▒▒▓░▒▒▒▓▒░▒▒ ▒   │ -  │        ░░▒▒░▒▒█▓▓▒▒▒░▓▒░▒▒▒▒ ░░░░ ░    │ -  │       ░░░░░▒▒▓▓▒▒▓█▓▓█▒░▒▒░ ░░   ░     │ -  │       ░░░░▒▒▒▒▒▒▒▓▒▒▒▒░░░░░            │ -  │        ░  ░░▒░▒░▒▒▒░▒▒░░               │ -  │         ░ ░░░░░░ ░░  ░                 │ -  │                                        │ - -3 │                                        │ - └────────────────────────────────────────┘ - -3  4 - x \ No newline at end of file diff --git a/test/fixtures/scatterplot/limits.txt b/test/fixtures/scatterplot/limits.txt deleted file mode 100644 index db108af..0000000 --- a/test/fixtures/scatterplot/limits.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2.5 │⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - -5.5 │⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀│ - └────────────────────────────────────────┘ - -1.5  3.5 \ No newline at end of file diff --git a/test/fixtures/scatterplot/nocolor.txt b/test/fixtures/scatterplot/nocolor.txt deleted file mode 100644 index 1a72e47..0000000 --- a/test/fixtures/scatterplot/nocolor.txt +++ /dev/null @@ -1,20 +0,0 @@ - Scatter - ┌────────────────────────────────────────┐ - 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points1 - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points2 - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀│ points3 - │⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - y │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│ - └────────────────────────────────────────┘ - -1 3 - x \ No newline at end of file diff --git a/test/fixtures/scatterplot/nogrid.txt b/test/fixtures/scatterplot/nogrid.txt deleted file mode 100644 index 3bc1a2a..0000000 --- a/test/fixtures/scatterplot/nogrid.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│ - └────────────────────────────────────────┘ - -1  3 \ No newline at end of file diff --git a/test/fixtures/scatterplot/parameters1.txt b/test/fixtures/scatterplot/parameters1.txt deleted file mode 100644 index b71c288..0000000 --- a/test/fixtures/scatterplot/parameters1.txt +++ /dev/null @@ -1,20 +0,0 @@ - Scatter - ┌────────────────────────────────────────┐ - 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points1 -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - y  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│ - └────────────────────────────────────────┘ - -1  3 - x \ No newline at end of file diff --git a/test/fixtures/scatterplot/parameters2.txt b/test/fixtures/scatterplot/parameters2.txt deleted file mode 100644 index 154a29b..0000000 --- a/test/fixtures/scatterplot/parameters2.txt +++ /dev/null @@ -1,20 +0,0 @@ - Scatter - ┌────────────────────────────────────────┐ - 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points1 -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points2 -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - y  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│ - └────────────────────────────────────────┘ - -1  3 - x \ No newline at end of file diff --git a/test/fixtures/scatterplot/parameters3.txt b/test/fixtures/scatterplot/parameters3.txt deleted file mode 100644 index e5b046a..0000000 --- a/test/fixtures/scatterplot/parameters3.txt +++ /dev/null @@ -1,20 +0,0 @@ - Scatter - ┌────────────────────────────────────────┐ - 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points1 -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points2 -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀│ points3 -  │⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - y  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│ - └────────────────────────────────────────┘ - -1  3 - x \ No newline at end of file diff --git a/test/fixtures/scatterplot/range1.txt b/test/fixtures/scatterplot/range1.txt deleted file mode 100644 index 67e24db..0000000 --- a/test/fixtures/scatterplot/range1.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 10 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - 6 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 1  5 \ No newline at end of file diff --git a/test/fixtures/scatterplot/range2.txt b/test/fixtures/scatterplot/range2.txt deleted file mode 100644 index 78bc34e..0000000 --- a/test/fixtures/scatterplot/range2.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 10 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - 6 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 11  15 \ No newline at end of file diff --git a/test/fixtures/scatterplot/scale1.txt b/test/fixtures/scatterplot/scale1.txt deleted file mode 100644 index fc8fc7b..0000000 --- a/test/fixtures/scatterplot/scale1.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - -14.998 │⠁⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - -15.005 │⡀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - -1000  4000 \ No newline at end of file diff --git a/test/fixtures/scatterplot/scale2.txt b/test/fixtures/scatterplot/scale2.txt deleted file mode 100644 index 7abc860..0000000 --- a/test/fixtures/scatterplot/scale2.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2000 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ - -6000 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 14.999  15.003 \ No newline at end of file diff --git a/test/fixtures/scatterplot/scale3.txt b/test/fixtures/scatterplot/scale3.txt deleted file mode 100644 index 481f9b0..0000000 --- a/test/fixtures/scatterplot/scale3.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 1.2796649117521434e+218 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - -1.2796649117521434e+218 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - └────────────────────────────────────────┘ - 0  2 \ No newline at end of file diff --git a/test/fixtures/scatterplot/y_only.txt b/test/fixtures/scatterplot/y_only.txt deleted file mode 100644 index 0fe38f1..0000000 --- a/test/fixtures/scatterplot/y_only.txt +++ /dev/null @@ -1,18 +0,0 @@ - ┌────────────────────────────────────────┐ - 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - -5 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│ - └────────────────────────────────────────┘ - 1  5 \ No newline at end of file diff --git a/test/fixtures/stemplot/b2b_integers.txt b/test/fixtures/stemplot/b2b_integers.txt deleted file mode 100644 index cd33717..0000000 --- a/test/fixtures/stemplot/b2b_integers.txt +++ /dev/null @@ -1,13 +0,0 @@ - 98652211 | 0 | 145589 - 95543000 | 1 | 11344889 - 4410 | 2 | 23344666788 - 9743221100 | 3 | 3358888 -98866432211110 | 4 | 11189 - 5310 | 5 | 0133377778 - 8764331 | 6 | 012356789 - 8553210 | 7 | 025569 - 944400 | 8 | 1558999 - 98755442210 | 9 | 0123466899 - 0 | 10 | 0 -Key: 1|0 = 10 -The decimal is 1 digit(s) to the right of | diff --git a/test/fixtures/stemplot/b2b_strings.txt b/test/fixtures/stemplot/b2b_strings.txt deleted file mode 100644 index f742aac..0000000 --- a/test/fixtures/stemplot/b2b_strings.txt +++ /dev/null @@ -1,10 +0,0 @@ -png_ | a | p - eaa | b | - | c | aah - o | d | - g | e | l - | f | lr - | g | n - | h | - | i | - u | j | u diff --git a/test/fixtures/stemplot/float.txt b/test/fixtures/stemplot/float.txt deleted file mode 100644 index f1930e9..0000000 --- a/test/fixtures/stemplot/float.txt +++ /dev/null @@ -1,8 +0,0 @@ --1 | 0077 --0 | 0000234556677788999 - 0 | 01222356788899999 - 1 | 034889 - 2 | 127 - 3 | 1 -Key: 1|0 = 10 -The decimal is 1 digit(s) to the right of | diff --git a/test/fixtures/stemplot/float_scale1.txt b/test/fixtures/stemplot/float_scale1.txt deleted file mode 100644 index 71d3f8f..0000000 --- a/test/fixtures/stemplot/float_scale1.txt +++ /dev/null @@ -1,12 +0,0 @@ --4 | 0 --3 | 05 --2 | 05 --1 | 05 --0 | 5 - 0 | 05 - 1 | 05 - 2 | 05 - 3 | 05 - 4 | 0 -Key: 1|0 = 1 -The decimal is 0 digit(s) to the right of | diff --git a/test/fixtures/stemplot/ints_divider.txt b/test/fixtures/stemplot/ints_divider.txt deleted file mode 100644 index 41142a4..0000000 --- a/test/fixtures/stemplot/ints_divider.txt +++ /dev/null @@ -1,13 +0,0 @@ - 0 😄 11225689 - 1 😄 00034559 - 2 😄 0144 - 3 😄 0011223479 - 4 😄 01111223466889 - 5 😄 0135 - 6 😄 1334678 - 7 😄 0123558 - 8 😄 004449 - 9 😄 01224455789 -10 😄 0 -Key: 1😄0 = 10 -The decimal is 1 digit(s) to the right of 😄 diff --git a/test/fixtures/stemplot/pos_ints.txt b/test/fixtures/stemplot/pos_ints.txt deleted file mode 100644 index d33b1e2..0000000 --- a/test/fixtures/stemplot/pos_ints.txt +++ /dev/null @@ -1,13 +0,0 @@ - 0 | 11225689 - 1 | 00034559 - 2 | 0144 - 3 | 0011223479 - 4 | 01111223466889 - 5 | 0135 - 6 | 1334678 - 7 | 0123558 - 8 | 004449 - 9 | 01224455789 -10 | 0 -Key: 1|0 = 10 -The decimal is 1 digit(s) to the right of | diff --git a/test/fixtures/stemplot/posneg_ints.txt b/test/fixtures/stemplot/posneg_ints.txt deleted file mode 100644 index c237ac5..0000000 --- a/test/fixtures/stemplot/posneg_ints.txt +++ /dev/null @@ -1,24 +0,0 @@ --10 | 0 - -9 | 0011222444456789999 - -8 | 11233455789 - -7 | 0001112334556678999 - -6 | 1344556666789 - -5 | 1223334455666779 - -4 | 012334566667778889 - -3 | 0001244556777788 - -2 | 0111233445556666778889999 - -1 | 23345566677899 - -0 | 123333345566677888999 - 0 | 001135677888999 - 1 | 0333446678999 - 2 | 0022334567779 - 3 | 0123457889 - 4 | 44799 - 5 | 01334455666999 - 6 | 22245677889 - 7 | 011233556777899 - 8 | 012344444555666777999 - 9 | 113345689 - 10 | 0 -Key: 1|0 = 10 -The decimal is 1 digit(s) to the right of | diff --git a/test/fixtures/stemplot/range.txt b/test/fixtures/stemplot/range.txt deleted file mode 100644 index cadbdcf..0000000 --- a/test/fixtures/stemplot/range.txt +++ /dev/null @@ -1,24 +0,0 @@ --10 | 0 - -9 | 0123456789 - -8 | 0123456789 - -7 | 0123456789 - -6 | 0123456789 - -5 | 0123456789 - -4 | 0123456789 - -3 | 0123456789 - -2 | 0123456789 - -1 | 0123456789 - -0 | 123456789 - 0 | 0123456789 - 1 | 0123456789 - 2 | 0123456789 - 3 | 0123456789 - 4 | 0123456789 - 5 | 0123456789 - 6 | 0123456789 - 7 | 0123456789 - 8 | 0123456789 - 9 | 0123456789 - 10 | 0 -Key: 1|0 = 10 -The decimal is 1 digit(s) to the right of | diff --git a/test/fixtures/stemplot/strings.txt b/test/fixtures/stemplot/strings.txt deleted file mode 100644 index 36b898a..0000000 --- a/test/fixtures/stemplot/strings.txt +++ /dev/null @@ -1,10 +0,0 @@ -a | _gnp -b | aae -c | -d | o -e | g -f | -g | -h | -i | -j | u diff --git a/test/fixtures/stemplot/strings_2c.txt b/test/fixtures/stemplot/strings_2c.txt deleted file mode 100644 index fcaac8a..0000000 --- a/test/fixtures/stemplot/strings_2c.txt +++ /dev/null @@ -1,9 +0,0 @@ -a_ | _ -ag | e -an | t -ap | p -ba | rz -be | e -do | g -eg | g -ju | n diff --git a/test/fixtures/stemplot/strings_pad.txt b/test/fixtures/stemplot/strings_pad.txt deleted file mode 100644 index 1a499d0..0000000 --- a/test/fixtures/stemplot/strings_pad.txt +++ /dev/null @@ -1,10 +0,0 @@ -a | ?gnp -b | aae -c | -d | o -e | g -f | -g | -h | -i | -j | u diff --git a/test/helper.rb b/test/helper.rb deleted file mode 100644 index dd658be..0000000 --- a/test/helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -require_relative "helper/fixture" -require_relative "helper/with_term" diff --git a/test/helper/fixture.rb b/test/helper/fixture.rb deleted file mode 100644 index 31d9bbb..0000000 --- a/test/helper/fixture.rb +++ /dev/null @@ -1,14 +0,0 @@ -require 'pathname' - -module Helper - module Fixture - def fixture_dir - test_dir = Pathname(File.expand_path("../..", __FILE__)) - test_dir.join("fixtures") - end - - def fixture_path(*components) - fixture_dir.join(*components) - end - end -end diff --git a/test/helper/with_term.rb b/test/helper/with_term.rb deleted file mode 100644 index 4aae79d..0000000 --- a/test/helper/with_term.rb +++ /dev/null @@ -1,29 +0,0 @@ -require 'stringio' - -module Helper - module WithTerm - def with_sio(tty: true) - sio = StringIO.new - def sio.tty?; true; end if tty - - result = yield(sio) - sio.close - - [result, sio.string] - end - - def with_term(tty=true) - with_sio(tty: tty) do |sio| - begin - orig_stdout, $stdout = $stdout, sio - orig_env = ENV.to_h.dup - ENV['TERM'] = 'xterm-256color' - yield - ensure - $stdout = orig_stdout - ENV.replace(orig_env) if orig_env - end - end - end - end -end diff --git a/test/run-test.rb b/test/run-test.rb deleted file mode 100644 index 89a9cba..0000000 --- a/test/run-test.rb +++ /dev/null @@ -1,12 +0,0 @@ -base_dir = File.expand_path("../..", __FILE__) -lib_dir = File.join(base_dir, "lib") -test_dir = File.join(base_dir, "test") - -$LOAD_PATH.unshift(lib_dir) - -require "test/unit" -require "unicode_plot" - -require_relative "helper" - -exit Test::Unit::AutoRunner.run(true, test_dir) diff --git a/test/test-barplot.rb b/test/test-barplot.rb deleted file mode 100644 index c3bba4a..0000000 --- a/test/test-barplot.rb +++ /dev/null @@ -1,198 +0,0 @@ -class BarplotTest < Test::Unit::TestCase - include Helper::Fixture - include Helper::WithTerm - - sub_test_case("UnicodePlot.barplot") do - test("errors") do - assert_raise(ArgumentError) do - UnicodePlot.barplot([:a], [-1, 2]) - end - assert_raise(ArgumentError) do - UnicodePlot.barplot([:a, :b], [-1, 2]) - end - end - - sub_test_case("with invalid arguments") do - test("unknown border type") do - assert_raise(ArgumentError.new("unknown border type: invalid_border_name")) do - UnicodePlot.barplot(data: {bar: 23, foo: 37}, border: :invalid_border_name) - end - end - end - - test("colored") do - data = { bar: 23, foo: 37 } - plot = UnicodePlot.barplot(data: data) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/default.txt").read, - output) - - plot = UnicodePlot.barplot([:bar, :foo], [23, 37]) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/default.txt").read, - output) - end - - test("not colored") do - data = { bar: 23, foo: 37 } - plot = UnicodePlot.barplot(data: data) - output = StringIO.open do |sio| - sio.print(plot) - sio.close - sio.string - end - assert_equal(fixture_path("barplot/nocolor.txt").read, - output) - end - - test("mixed") do - data = { bar: 23.0, 2.1 => 10, foo: 37.0 } - plot = UnicodePlot.barplot(data: data) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/default_mixed.txt").read, - output) - end - - sub_test_case("xscale: :log10") do - test("default") do - plot = UnicodePlot.barplot( - [:a, :b, :c, :d, :e], - [0, 1, 10, 100, 1000], - title: "Logscale Plot", - xscale: :log10 - ) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/log10.txt").read, - output) - end - - test("with custom label") do - plot = UnicodePlot.barplot( - [:a, :b, :c, :d, :e], - [0, 1, 10, 100, 1000], - title: "Logscale Plot", - xlabel: "custom label", - xscale: :log10 - ) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/log10_label.txt").read, - output) - end - end - - sub_test_case("with parameters") do - test("parameters1") do - plot = UnicodePlot.barplot( - ["Paris", "New York", "Moskau", "Madrid"], - [2.244, 8.406, 11.92, 3.165], - title: "Relative sizes of cities", - xlabel: "population [in mil]", - color: :blue, - margin: 7, - padding: 3 - ) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/parameters1.txt").read, - output) - end - - test("parameters1_nolabels") do - plot = UnicodePlot.barplot( - ["Paris", "New York", "Moskau", "Madrid"], - [2.244, 8.406, 11.92, 3.165], - title: "Relative sizes of cities", - xlabel: "population [in mil]", - color: :blue, - margin: 7, - padding: 3, - labels: false - ) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/parameters1_nolabels.txt").read, - output) - end - - test("parameters2") do - plot = UnicodePlot.barplot( - ["Paris", "New York", "Moskau", "Madrid"], - [2.244, 8.406, 11.92, 3.165], - title: "Relative sizes of cities", - xlabel: "population [in mil]", - color: :yellow, - border: :solid, - symbol: "=", - width: 60 - ) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/parameters2.txt").read, - output) - end - end - - test("ranges") do - plot = UnicodePlot.barplot(2..6, 11..15) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/ranges.txt").read, - output) - end - - test("all zeros") do - plot = UnicodePlot.barplot([5, 4, 3, 2, 1], [0, 0, 0, 0, 0]) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/edgecase_zeros.txt").read, - output) - end - - test("one large") do - plot = UnicodePlot.barplot([:a, :b, :c, :d], [1, 1, 1, 1000000]) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/edgecase_onelarge.txt").read, - output) - end - end - - sub_test_case("UnicodePlot.barplot!") do - test("errors") do - plot = UnicodePlot.barplot([:bar, :foo], [23, 37]) - assert_raise(ArgumentError) do - UnicodePlot.barplot!(plot, ["zoom"], [90, 80]) - end - assert_raise(ArgumentError) do - UnicodePlot.barplot!(plot, ["zoom", "boom"], [90]) - end - UnicodePlot.barplot!(plot, "zoom", 90.1) - end - - test("return value") do - plot = UnicodePlot.barplot([:bar, :foo], [23, 37]) - assert_same(plot, - UnicodePlot.barplot!(plot, ["zoom"], [90])) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/default2.txt").read, - output) - - plot = UnicodePlot.barplot([:bar, :foo], [23, 37]) - assert_same(plot, - UnicodePlot.barplot!(plot, "zoom", 90)) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/default2.txt").read, - output) - - plot = UnicodePlot.barplot([:bar, :foo], [23, 37]) - assert_same(plot, - UnicodePlot.barplot!(plot, data: { zoom: 90 })) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/default2.txt").read, - output) - end - - test("ranges") do - plot = UnicodePlot.barplot(2..6, 11..15) - assert_same(plot, - UnicodePlot.barplot!(plot, 9..10, 20..21)) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("barplot/ranges2.txt").read, - output) - end - end -end diff --git a/test/test-boxplot.rb b/test/test-boxplot.rb deleted file mode 100644 index db6bdf7..0000000 --- a/test/test-boxplot.rb +++ /dev/null @@ -1,91 +0,0 @@ -class BoxplotTest < Test::Unit::TestCase - include Helper::Fixture - include Helper::WithTerm - - sub_test_case("UnicodePlot.boxplot") do - sub_test_case("with invalid arguments") do - test("unknown border type") do - assert_raise(ArgumentError.new("unknown border type: invalid_border_name")) do - UnicodePlot.boxplot([1, 2, 3, 4, 5], border: :invalid_border_name) - end - end - end - - sub_test_case("print to tty") do - test("without name") do - plot = UnicodePlot.boxplot([1, 2, 3, 4, 5]) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("boxplot/default.txt").read, - output) - end - - test("with name") do - plot = UnicodePlot.boxplot("series1", [1, 2, 3, 4, 5]) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("boxplot/default_name.txt").read, - output) - end - end - - sub_test_case("with parameters") do - def setup - @plot = UnicodePlot.boxplot("series1", [1, 2, 3, 4, 5], - title: "Test", xlim: [-1, 8], - color: :blue, width: 50, - border: :solid, xlabel: "foo") - end - - test("print to tty") do - _, output = with_term { @plot.render($stdout, newline: false) } - assert_equal(fixture_path("boxplot/default_parameters.txt").read, - output) - end - - test("print to non-tty IO") do - output = StringIO.open do |sio| - @plot.render(sio, newline: false) - sio.close - sio.string - end - assert_equal(fixture_path("boxplot/default_parameters_nocolor.txt").read, - output) - end - end - - data([5, 6, 10, 20, 40].map.with_index {|max_x, i| - ["max_x: #{max_x}", [i + 1, max_x]] }.to_h) - test("with scaling") do - i, max_x = data - plot = UnicodePlot.boxplot([1, 2, 3, 4, 5], xlim: [0, max_x]) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("boxplot/scale#{i}.txt").read, - output) - end - - test("multi-series") do - plot = UnicodePlot.boxplot(["one", "two"], - [ - [1, 2, 3, 4, 5], - [2, 3, 4, 5, 6, 7, 8, 9] - ], - title: "Multi-series", - xlabel: "foo", - color: :yellow) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("boxplot/multi1.txt").read, - output) - - assert_same(plot, - UnicodePlot.boxplot!(plot, "one more", [-1, 2, 3, 4, 11])) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("boxplot/multi2.txt").read, - output) - - assert_same(plot, - UnicodePlot.boxplot!(plot, [4, 2, 2.5, 4, 14], name: "last one")) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("boxplot/multi3.txt").read, - output) - end - end -end diff --git a/test/test-canvas.rb b/test/test-canvas.rb deleted file mode 100644 index 971759b..0000000 --- a/test/test-canvas.rb +++ /dev/null @@ -1,145 +0,0 @@ -module CanvasTestCases - include Helper::Fixture - include Helper::WithTerm - - CANVAS_CLASSES = { - ascii: UnicodePlot::AsciiCanvas, - braille: UnicodePlot::BrailleCanvas, - density: UnicodePlot::DensityCanvas, - dot: UnicodePlot::DotCanvas, - block: UnicodePlot::BlockCanvas - }.freeze - - def self.included(mod) - mod.module_eval do - def setup - # seed!(1337) - # x1, y1 = rand(20), rand(20) - # x2, y2 = rand(50), rand(50) - @x1 = [0.226582, 0.504629, 0.933372, 0.522172, 0.505208, - 0.0997825, 0.0443222, 0.722906, 0.812814, 0.245457, - 0.11202, 0.000341996, 0.380001, 0.505277, 0.841177, - 0.326561, 0.810857, 0.850456, 0.478053, 0.179066] - @y1 = [0.44701, 0.219519, 0.677372, 0.746407, 0.735727, - 0.574789, 0.538086, 0.848053, 0.110351, 0.796793, - 0.987618, 0.801862, 0.365172, 0.469959, 0.306373, - 0.704691, 0.540434, 0.405842, 0.805117, 0.014829] - @x2 = [0.486366, 0.911547, 0.900818, 0.641951, 0.546221, - 0.036135, 0.931522, 0.196704, 0.710775, 0.969291, - 0.32546, 0.632833, 0.815576, 0.85278, 0.577286, - 0.887004, 0.231596, 0.288337, 0.881386, 0.0952668, - 0.609881, 0.393795, 0.84808, 0.453653, 0.746048, - 0.924725, 0.100012, 0.754283, 0.769802, 0.997368, - 0.0791693, 0.234334, 0.361207, 0.1037, 0.713739, - 0.510725, 0.649145, 0.233949, 0.812092, 0.914384, - 0.106925, 0.570467, 0.594956, 0.118498, 0.699827, - 0.380363, 0.843282, 0.28761, 0.541469, 0.568466] - @y2 = [0.417777, 0.774845, 0.00230619, 0.907031, 0.971138, - 0.0524795, 0.957415, 0.328894, 0.530493, 0.193359, - 0.768422, 0.783238, 0.607772, 0.0261113, 0.0849032, - 0.461164, 0.613067, 0.785021, 0.988875, 0.131524, - 0.0657328, 0.466453, 0.560878, 0.925428, 0.238691, - 0.692385, 0.203687, 0.441146, 0.229352, 0.332706, - 0.113543, 0.537354, 0.965718, 0.437026, 0.960983, - 0.372294, 0.0226533, 0.593514, 0.657878, 0.450696, - 0.436169, 0.445539, 0.0534673, 0.0882236, 0.361795, - 0.182991, 0.156862, 0.734805, 0.166076, 0.1172] - - canvas_class = CANVAS_CLASSES[self.class::CANVAS_NAME] - @canvas = canvas_class.new(40, 10, - origin_x: 0, - origin_y: 0, - plot_width: 1, - plot_height: 1) - end - - test("empty") do - if self.class::CANVAS_NAME == :braille - _, output = with_term { @canvas.show(UnicodePlot::IOContext.new($stdout)) } - assert_equal(fixture_path("canvas/empty_braille_show.txt").read, - output) - else - _, output = with_term { @canvas.show(UnicodePlot::IOContext.new($stdout)) } - assert_equal(fixture_path("canvas/empty_show.txt").read, - output) - end - end - - sub_test_case("with drawing") do - def setup - super - @canvas.line!(0, 0, 1, 1, :blue) - @canvas.points!(@x1, @y1, :white) - @canvas.pixel!(2, 4, :cyan) - @canvas.points!(@x2, @y2, :red) - @canvas.line!(0, 1, 0.5, 0, :green) - @canvas.point!(0.05, 0.3, :cyan) - @canvas.lines!([1, 2], [2, 1]) - @canvas.line!(0, 0, 9, 9999, :yellow) - @canvas.line!(0, 0, 1, 1, :blue) - @canvas.line!(0.1, 0.7, 0.9, 0.6, :red) - end - - test("print_row") do - _, output = with_term { @canvas.print_row(UnicodePlot::IOContext.new($stdout), 2) } - assert_equal(fixture_path("canvas/#{self.class::CANVAS_NAME}_printrow.txt").read, - output) - end - - test("print") do - _, output = with_term { @canvas.print(UnicodePlot::IOContext.new($stdout)) } - assert_equal(fixture_path("canvas/#{self.class::CANVAS_NAME}_print.txt").read, - output) - end - - test("print_nocolor") do - _, output = with_term(false) { @canvas.print(UnicodePlot::IOContext.new($stdout)) } - assert_equal(fixture_path("canvas/#{self.class::CANVAS_NAME}_print_nocolor.txt").read, - output) - end - - test("sow") do - _, output = with_term { @canvas.show(UnicodePlot::IOContext.new($stdout)) } - assert_equal(fixture_path("canvas/#{self.class::CANVAS_NAME}_show.txt").read, - output) - end - - test("show_nocolor") do - _, output = with_term(false) { @canvas.show(UnicodePlot::IOContext.new($stdout)) } - assert_equal(fixture_path("canvas/#{self.class::CANVAS_NAME}_show_nocolor.txt").read, - output) - end - end - end - end -end - -class BrailleCanvasTest < Test::Unit::TestCase - CANVAS_NAME = :braille - - include CanvasTestCases -end - -class AsciiCanvasTest < Test::Unit::TestCase - CANVAS_NAME = :ascii - - include CanvasTestCases -end - -class DensityCanvasTest < Test::Unit::TestCase - CANVAS_NAME = :density - - include CanvasTestCases -end - -class DotCanvasTest < Test::Unit::TestCase - CANVAS_NAME = :dot - - include CanvasTestCases -end - -class BlockCanvasTest < Test::Unit::TestCase - CANVAS_NAME = :block - - include CanvasTestCases -end diff --git a/test/test-densityplot.rb b/test/test-densityplot.rb deleted file mode 100644 index 9a85873..0000000 --- a/test/test-densityplot.rb +++ /dev/null @@ -1,46 +0,0 @@ -class DensityplotTest < Test::Unit::TestCase - include Helper::Fixture - include Helper::WithTerm - - def setup - randn = fixture_path("randn_1338_2000.txt").read.each_line.map(&:to_f) - @dx = randn[0, 1000].compact - @dy = randn[1000, 1000].compact - assert_equal(1000, @dx.length) - assert_equal(1000, @dy.length) - end - - sub_test_case("with invalid arguments") do - test("unknown border type") do - assert_raise(ArgumentError.new("unknown border type: invalid_border_name")) do - UnicodePlot.densityplot(@dx, @dy, border: :invalid_border_name) - end - end - end - - test("default") do - plot = UnicodePlot.densityplot(@dx, @dy) - dx2 = @dx.map {|x| x + 2 } - dy2 = @dy.map {|y| y + 2 } - assert_same(plot, - UnicodePlot.densityplot!(plot, dx2, dy2)) - _, output = with_term { plot.render($stdout, newline: false) } - expected = fixture_path("scatterplot/densityplot.txt").read - assert_equal(output, expected) - end - - test("parameters") do - plot = UnicodePlot.densityplot(@dx, @dy, - name: "foo", - color: :red, - title: "Title", - xlabel: "x") - dx2 = @dx.map {|x| x + 2 } - dy2 = @dy.map {|y| y + 2 } - assert_same(plot, - UnicodePlot.densityplot!(plot, dx2, dy2, name: "bar")) - _, output = with_term { plot.render($stdout, newline: false) } - expected = fixture_path("scatterplot/densityplot_parameters.txt").read - assert_equal(output, expected) - end -end diff --git a/test/test-histogram.rb b/test/test-histogram.rb deleted file mode 100644 index 31c9178..0000000 --- a/test/test-histogram.rb +++ /dev/null @@ -1,126 +0,0 @@ -class HistogramTest < Test::Unit::TestCase - include Helper::Fixture - include Helper::WithTerm - - sub_test_case("UnicodePlot.histogram") do - def setup - @x = fixture_path("randn.txt").read.lines.map(&:to_f) - end - - sub_test_case("with invalid arguments") do - test("unknown border type") do - assert_raise(ArgumentError.new("unknown border type: invalid_border_name")) do - UnicodePlot.histogram(@x, border: :invalid_border_name) - end - end - end - - test("default") do - plot = UnicodePlot.histogram(@x) - _, output = with_term { plot.render($stdout) } - assert_equal("\n", output[-1]) - assert_equal(fixture_path("histogram/default.txt").read, - output.chomp) - end - - test("nocolor") do - plot = UnicodePlot.histogram(@x) - output = StringIO.open do |sio| - plot.render(sio) - sio.close - sio.string - end - assert_equal("\n", output[-1]) - assert_equal(fixture_path("histogram/default_nocolor.txt").read, - output.chomp) - end - - test("losed: :left") do - plot = UnicodePlot.histogram(@x, closed: :left) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("histogram/default.txt").read, - output) - end - - test("x 100") do - x100 = @x.map {|a| a * 100 } - plot = UnicodePlot.histogram(x100) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("histogram/default_1e2.txt").read, - output) - end - - test("x0.01") do - x100 = @x.map {|a| a * 0.01 } - plot = UnicodePlot.histogram(x100) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("histogram/default_1e-2.txt").read, - output) - end - - test("xscale: :log10") do - plot = UnicodePlot.histogram(@x, xscale: :log10) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("histogram/log10.txt").read, - output) - end - - test("xscale: :log10 with custom label") do - plot = UnicodePlot.histogram(@x, xscale: :log10, xlabel: "custom label") - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("histogram/log10_label.txt").read, - output) - end - - test("nbins: 5, closed: :right") do - plot = UnicodePlot.histogram(@x, nbins: 5, closed: :right) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("histogram/hist_params.txt").read, - output) - end - - test("with title, xlabel, color, margin, and padding") do - plot = UnicodePlot.histogram(@x, - title: "My Histogram", - xlabel: "Absolute Frequency", - color: :blue, - margin: 7, - padding: 3) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("histogram/parameters1.txt").read, - output) - end - - test("with title, xlabel, color, margin, padding, and labels: false") do - plot = UnicodePlot.histogram(@x, - title: "My Histogram", - xlabel: "Absolute Frequency", - color: :blue, - margin: 7, - padding: 3, - labels: false) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("histogram/parameters1_nolabels.txt").read, - output) - end - - test("with title, xlabel, color, border, symbol, and width") do - plot = UnicodePlot.histogram(@x, - title: "My Histogram", - xlabel: "Absolute Frequency", - color: :yellow, - border: :solid, - symbol: "=", - width: 50) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("histogram/parameters2.txt").read, - output) - end - - test("issue #24") do - assert_nothing_raised do - UnicodePlot.histogram([1, 2]) - end - end - end -end diff --git a/test/test-lineplot.rb b/test/test-lineplot.rb deleted file mode 100644 index cb13823..0000000 --- a/test/test-lineplot.rb +++ /dev/null @@ -1,283 +0,0 @@ -require 'date' - -class LineplotTest < Test::Unit::TestCase - include Helper::Fixture - include Helper::WithTerm - - sub_test_case("UnicodePlot.lineplot") do - def setup - @x = [-1, 1, 3, 3, -1] - @y = [2, 0, -5, 2, -5] - end - - test("ArgumentError") do - assert_raise(ArgumentError) { UnicodePlot.lineplot() } - assert_raise(ArgumentError) { UnicodePlot.lineplot(Math.method(:sin), @x, @y) } - assert_raise(ArgumentError) { UnicodePlot.lineplot([], 0, 3) } - assert_raise(ArgumentError) { UnicodePlot.lineplot([], @x) } - assert_raise(ArgumentError) { UnicodePlot.lineplot([]) } - assert_raise(ArgumentError) { UnicodePlot.lineplot([1, 2], [1, 2, 3]) } - assert_raise(ArgumentError) { UnicodePlot.lineplot([1, 2, 3], [1, 2]) } - assert_raise(ArgumentError) { UnicodePlot.lineplot([1, 2, 3], 1..2) } - assert_raise(ArgumentError) { UnicodePlot.lineplot(1..3, [1, 2]) } - assert_raise(ArgumentError) { UnicodePlot.lineplot(1..3, 1..2) } - end - - sub_test_case("with invalid arguments") do - test("unknown border type") do - assert_raise(ArgumentError.new("unknown border type: invalid_border_name")) do - UnicodePlot.lineplot(@x, @y, border: :invalid_border_name) - end - end - end - - sub_test_case("with numeric array") do - test("default") do - plot = UnicodePlot.lineplot(@x, @y) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/default.txt").read, - output) - - plot = UnicodePlot.lineplot(@x.map(&:to_f), @y) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/default.txt").read, - output) - - plot = UnicodePlot.lineplot(@x, @y.map(&:to_f)) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/default.txt").read, - output) - end - - test("y only") do - plot = UnicodePlot.lineplot(@y) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/y_only.txt").read, - output) - end - - test("range") do - plot = UnicodePlot.lineplot(6..10) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/range1.txt").read, - output) - - plot = UnicodePlot.lineplot(11..15, 6..10) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/range2.txt").read, - output) - end - end - - test("axis scaling and offsets") do - plot = UnicodePlot.lineplot( - @x.map {|x| x * 1e+3 + 15 }, - @y.map {|y| y * 1e-3 - 15 } - ) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/scale1.txt").read, - output) - - plot = UnicodePlot.lineplot( - @x.map {|x| x * 1e-3 + 15 }, - @y.map {|y| y * 1e+3 - 15 } - ) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/scale2.txt").read, - output) - - tx = [-1.0, 2, 3, 700000] - ty = [1.0, 2, 9, 4000000] - plot = UnicodePlot.lineplot(tx, ty) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/scale3.txt").read, - output) - - plot = UnicodePlot.lineplot(tx, ty, width: 5, height: 5) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/scale3_small.txt").read, - output) - end - - test("dates") do - d = [*Date.new(1999, 12, 31) .. Date.new(2000, 1, 30)] - v = 0.step(3*Math::PI, by: 3*Math::PI / 30) - - y1 = v.map(&Math.method(:sin)) - plot = UnicodePlot.lineplot(d, y1, name: "sin", height: 5, xlabel: "date") - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/dates1.txt").read, - output) - - y2 = v.map(&Math.method(:cos)) - assert_same(plot, - UnicodePlot.lineplot!(plot, d, y2, name: "cos")) - - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/dates2.txt").read, - output) - end - - test("line with intercept and slope") do - plot = UnicodePlot.lineplot(@y) - assert_same(plot, - UnicodePlot.lineplot!(plot, -3, 1)) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/slope1.txt").read, - output) - - assert_same(plot, - UnicodePlot.lineplot!(plot, -4, 0.5, color: :cyan, name: "foo")) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/slope2.txt").read, - output) - end - - test("limits") do - plot = UnicodePlot.lineplot(@x, @y, xlim: [-1.5, 3.5], ylim: [-5.5, 2.5]) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/limits.txt").read, - output) - end - - test("nogrid") do - plot = UnicodePlot.lineplot(@x, @y, grid: false) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/nogrid.txt").read, - output) - end - - test("color: :blue") do - plot = UnicodePlot.lineplot(@x, @y, color: :blue, name: "points1") - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/blue.txt").read, - output) - end - - test("parameters") do - plot = UnicodePlot.lineplot(@x, @y, - name: "points1", - title: "Scatter", - xlabel: "x", - ylabel: "y") - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/parameters1.txt").read, - output) - - assert_same(plot, - UnicodePlot.lineplot!(plot, - [0.5, 1, 1.5], - name: "points2")) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/parameters2.txt").read, - output) - - assert_same(plot, - UnicodePlot.lineplot!(plot, - [-0.5, 0.5, 1.5], - [0.5, 1, 1.5], - name: "points3")) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/parameters3.txt").read, - output) - output = StringIO.open do |sio| - plot.render(sio, newline: false) - sio.close - sio.string - end - assert_equal(fixture_path("lineplot/nocolor.txt").read, - output) - end - - test("canvas size") do - plot = UnicodePlot.lineplot(@x, @y, - title: "Scatter", - canvas: :dot, - width: 10, - height: 5) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/canvassize.txt").read, - output) - end - - test("fixed line y-interpolation bug (issue 32)") do - ys = [261, 272, 277, 283, 289, 294, 298, 305, 309, 314, 319, 320, 322, 323, 324] - xs = ys.size.times.to_a - plot = UnicodePlot.lineplot(xs, ys, height: 26, ylim: [0, 700]) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/issue32_fix.txt").read, - output) - end - - # TODO: functions - - sub_test_case("stairs") do - def setup - @sx = [1, 2, 4, 7, 8] - @sy = [1, 3, 4, 2, 7] - end - - test("pre") do - plot = UnicodePlot.stairs(@sx, @sy, style: :pre) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/stairs_pre.txt").read, output) - end - - test("post") do - # inferred post - plot = UnicodePlot.stairs(@sx, @sy) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/stairs_post.txt").read, output) - # explicit post - plot = UnicodePlot.stairs(@sx, @sy, style: :post) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/stairs_post.txt").read, output) - end - - test("with parameters") do - plot = UnicodePlot.stairs(@sx, @sy, title: "Foo", color: :red, xlabel: "x", name: "1") - sx2 = @sx.map { |val| val - 0.2 } - sy2 = @sy.map { |val| val + 1.5 } - plot2 = UnicodePlot.stairs!(plot, sx2, sy2, name: "2") - assert_equal(plot.class, plot2.class) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/stairs_parameters.txt").read, output) - - # add a 3rd staircase and check again - plot3 = UnicodePlot.stairs!(plot, @sx, @sy, name: "3", style: :pre) - assert_equal(plot.class, plot3.class) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/stairs_parameters2.txt").read, output) - - # check with color disabled - output = StringIO.open do |sio| - plot.render(sio) - sio.close - sio.string - end - assert_equal("\n", output[-1]) - assert_equal(fixture_path("lineplot/stairs_parameters2_nocolor.txt").read, - output.chomp) - end - - test("special weird case") do - plot = UnicodePlot.stairs(@sx, [1, 3, 4, 2, 7000]) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/stairs_edgecase.txt").read, output) - end - - test("annotations") do - plot = UnicodePlot.stairs(@sx, @sy, width: 10, padding: 3) - plot.annotate!(:tl, "Hello") - plot.annotate!(:t, "how are") - plot.annotate!(:tr, "you?") - plot.annotate!(:bl, "Hello") - plot.annotate!(:b, "how are") - plot.annotate!(:br, "you?") - UnicodePlot.lineplot!(plot, 1, 0.5) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("lineplot/squeeze_annotations.txt").read, output) - end - end - end -end diff --git a/test/test-plot.rb b/test/test-plot.rb deleted file mode 100644 index 6702df4..0000000 --- a/test/test-plot.rb +++ /dev/null @@ -1,36 +0,0 @@ -require 'stringio' - -class TestPlot < Test::Unit::TestCase - include Helper::WithTerm - - sub_test_case("#render") do - test("render to $stdout when no arguments") do - sio = StringIO.new - UnicodePlot.barplot(data: {a: 23, b: 37}).render(sio) - - begin - save_stdout, $stdout = $stdout, StringIO.new - UnicodePlot.barplot(data: {a: 23, b: 37}).render - assert do - sio.string == $stdout.string - end - ensure - $stdout = save_stdout - end - end - - test("color: true") do - _, tty_output = with_sio(tty: true) {|sio| UnicodePlot.barplot(data: {a: 23, b: 37}).render(sio) } - _, notty_output = with_sio(tty: false) {|sio| UnicodePlot.barplot(data: {a: 23, b: 37}).render(sio, color: true) } - - assert_equal(tty_output, notty_output) - end - - test("color: false") do - _, tty_output = with_sio(tty: true) {|sio| UnicodePlot.barplot(data: {a: 23, b: 37}).render(sio, color: false) } - _, notty_output = with_sio(tty: false) {|sio| UnicodePlot.barplot(data: {a: 23, b: 37}).render(sio) } - - assert_equal(tty_output, notty_output) - end - end -end diff --git a/test/test-scatterplot.rb b/test/test-scatterplot.rb deleted file mode 100644 index 1334c7e..0000000 --- a/test/test-scatterplot.rb +++ /dev/null @@ -1,154 +0,0 @@ -class ScatterplotTest < Test::Unit::TestCase - include Helper::Fixture - include Helper::WithTerm - - def setup - @x = [-1, 1, 3, 3, -1] - @y = [2, 0, -5, 2, -5] - end - - test("errors") do - assert_raise(ArgumentError) do - UnicodePlot.scatterplot() - end - assert_raise(ArgumentError) do - UnicodePlot.scatterplot([1, 2], [1, 2, 3]) - end - assert_raise(ArgumentError) do - UnicodePlot.scatterplot([1, 2, 3], [1, 2]) - end - assert_raise(ArgumentError) do - UnicodePlot.scatterplot(1..3, 1..2) - end - end - - sub_test_case("with invalid arguments") do - test("unknown border type") do - assert_raise(ArgumentError.new("unknown border type: invalid_border_name")) do - UnicodePlot.scatterplot(@x, @y, border: :invalid_border_name) - end - end - end - - test("default") do - plot = UnicodePlot.scatterplot(@x, @y) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("scatterplot/default.txt").read, - output) - end - - test("y only") do - plot = UnicodePlot.scatterplot(@y) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("scatterplot/y_only.txt").read, - output) - end - - test("one range") do - plot = UnicodePlot.scatterplot(6..10) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("scatterplot/range1.txt").read, - output) - end - - test("two ranges") do - plot = UnicodePlot.scatterplot(11..15, 6..10) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("scatterplot/range2.txt").read, - output) - end - - test("scale1") do - x = @x.map {|a| a * 1e3 + 15 } - y = @y.map {|a| a * 1e-3 - 15 } - plot = UnicodePlot.scatterplot(x, y) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("scatterplot/scale1.txt").read, - output) - end - - test("scale2") do - x = @x.map {|a| a * 1e-3 + 15 } - y = @y.map {|a| a * 1e3 - 15 } - plot = UnicodePlot.scatterplot(x, y) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("scatterplot/scale2.txt").read, - output) - end - - test("scale3") do - miny = -1.2796649117521434e218 - maxy = -miny - plot = UnicodePlot.scatterplot([1], [miny], xlim: [1, 1], ylim: [miny, maxy]) - _, output = with_term { plot.render($stdout, newline: false) } - expected = fixture_path("scatterplot/scale3.txt").read - assert_equal(expected, output) - end - - test("limits") do - plot = UnicodePlot.scatterplot(@x, @y, xlim: [-1.5, 3.5], ylim: [-5.5, 2.5]) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("scatterplot/limits.txt").read, - output) - end - - test("nogrid") do - plot = UnicodePlot.scatterplot(@x, @y, grid: false) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("scatterplot/nogrid.txt").read, - output) - end - - test("blue") do - plot = UnicodePlot.scatterplot(@x, @y, color: :blue, name: "points1") - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("scatterplot/blue.txt").read, - output) - end - - test("parameters") do - plot = UnicodePlot.scatterplot(@x, @y, - name: "points1", - title: "Scatter", - xlabel: "x", - ylabel: "y") - _, output = with_term { plot.render($stdout, newline: false) } - expected = fixture_path("scatterplot/parameters1.txt").read - assert_equal(expected, output) - - assert_same(plot, - UnicodePlot.scatterplot!(plot, - [0.5, 1, 1.5], - name: "points2")) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("scatterplot/parameters2.txt").read, - output) - - assert_same(plot, - UnicodePlot.scatterplot!(plot, - [-0.5, 0.5, 1.5], - [0.5, 1, 1.5], - name: "points3")) - _, output = with_term { plot.render($stdout, newline: false) } - assert_equal(fixture_path("scatterplot/parameters3.txt").read, - output) - output = StringIO.open do |sio| - plot.render(sio, newline: false) - sio.close - sio.string - end - assert_equal(fixture_path("scatterplot/nocolor.txt").read, - output) - end - - test("canvas size") do - plot = UnicodePlot.scatterplot(@x, @y, - title: "Scatter", - canvas: :dot, - width: 10, - height: 5) - _, output = with_term { plot.render($stdout, newline: false) } - expected = fixture_path("scatterplot/canvassize.txt").read - assert_equal(expected, output) - end -end diff --git a/test/test-stemplot.rb b/test/test-stemplot.rb deleted file mode 100644 index 6dc518f..0000000 --- a/test/test-stemplot.rb +++ /dev/null @@ -1,95 +0,0 @@ -# coding: utf-8 -class HistogramTest < Test::Unit::TestCase - include Helper::Fixture - include Helper::WithTerm - - sub_test_case("UnicodePlot.stemplot") do - def setup - @randoms = fixture_path("randn.txt").read.lines.take(50).map(&:to_f) - - @int80a = [40, 53, 33, 8, 30, 78, 68, 63, 80, 75, 73, 75, 61, 24, 84, 84, 51, 31, 94, 63, 72, 9, 80, 1, 84, 1, 13, 55, 46, 41, 99, 100, 39, 41, 10, 70, 67, 21, 50, 41, 49, 24, 32, 42, 32, 37, 44, 10, 48, 64, 41, 46, 94, 15, 15, 5, 6, 97, 48, 14, 2, 92, 10, 2, 91, 89, 20, 98, 19, 66, 43, 95, 90, 34, 71, 42, 31, 92, 95, 30] - - @int80b = [23, 24, 70, 61, 26, 57, 28, 18, 69, 53, 92, 11, 33, 38, 85, 58, 38, 27, 14, 62, 57, 38, 91, 11, 66, 23, 63, 28, 98, 9, 53, 26, 1, 93, 96, 49, 8, 89, 19, 18, 68, 51, 4, 57, 79, 90, 72, 99, 41, 57, 100, 94, 5, 13, 24, 76, 5, 60, 26, 41, 89, 99, 22, 81, 41, 48, 65, 67, 38, 53, 96, 85, 75, 89, 35, 75, 88, 50, 14, 33] - - @int300 = [-30, -7, 37, -42, -15, 8, 62, 22, -3, -32, -35, -48, -29, 8, -75, 27, 84, 81, -21, 9, 23, 86, -30, 29, 47, 89, -3, 38, 22, 31, 49, 84, -5, -28, -26, -66, 68, 59, -92, -3, -23, 100, -73, 19, -37, 89, -21, 23, 71, 14, -98, 49, -3, -1, -8, 67, -55, -30, -55, 93, 69, -20, -79, -91, -23, -46, 84, -49, -12, 35, -74, -2, -84, -34, -28, 98, -70, -72, 71, 86, 24, 64, -99, -76, -37, 54, 53, 72, -31, -53, 85, 10, -17, -8, -35, -16, -3, 26, 68, -92, 20, -70, 87, -78, 95, -88, -85, -7, 67, -47, -46, 0, -24, -48, 53, -53, -26, 79, -51, -40, -95, -37, 44, 77, -66, 85, 14, 5, -25, -85, -54, -17, -94, -52, -75, -79, 79, -53, -16, -27, -43, -94, -66, -56, -47, -56, -21, 7, 73, -19, 87, -64, -46, -81, 19, -13, -44, -87, -22, 18, 54, -9, 84, 50, 85, 62, 8, 99, -94, -65, 59, 93, 84, 16, 82, -16, 77, 55, -63, -13, -34, -77, 55, 87, -99, -82, 9, 73, 75, -94, -6, 9, 89, 27, 70, 56, -38, -67, -46, 59, 91, -26, 30, -81, -6, -29, -66, 25, 17, -25, -9, -90, 20, -71, 1, -47, -76, 39, -29, -19, -45, 91, -92, -6, -59, 34, 51, -61, -41, -90, 77, 83, -83, -25, -29, -64, 16, -91, -14, 7, -71, -57, -71, 76, -9, -43, -89, 86, 56, 56, 27, 3, -5, 13, -99, 13, -97, -68, 94, -15, 6, -8, -28, -52, 38, -96, -54, 13, -36, 78, -24, 32, 96, -57, -56, -27, -79, -73, -18, 44, -48, -65, -4, 80, -69, -26, -38, 66, 62, 65, -83, -100, -37, 1, -99, 75, 33, 19, 0, -70] - - @words_1 = %w[apple junk ant age bee bar baz dog egg a] - @words_2 = %w[ape flan can cat juice elf gnome child fruit] - - end - - test("range input") do - _, output = with_term { UnicodePlot.stemplot(-100..100) } - assert_equal(fixture_path("stemplot/range.txt").read, output) - end - - test("positive integers") do - _, output = with_term { UnicodePlot.stemplot(@int80a) } - assert_equal(fixture_path("stemplot/pos_ints.txt").read, output) - end - - test("with happy divider") do - _, output = with_term { UnicodePlot.stemplot(@int80a, divider: "😄") } - assert_equal(fixture_path("stemplot/ints_divider.txt").read, output) - end - - test("positive and negative integers") do - _, output = with_term { UnicodePlot.stemplot(@int300) } - assert_equal(fixture_path("stemplot/posneg_ints.txt").read, output) - end - - test("floats") do - x10 = @randoms.map {|a| a * 10 } - #p x10.sort - #UnicodePlot.stemplot(x10) - _, output = with_term { UnicodePlot.stemplot(x10) } - assert_equal(fixture_path("stemplot/float.txt").read, output) - end - - - test("floats, scale=1") do - floats = (-8..8).to_a.map { |a| a / 2.0 } - _, output = with_term { UnicodePlot.stemplot(floats, scale: 1) } - assert_equal(fixture_path("stemplot/float_scale1.txt").read, output) - end - - - test("back-to-back stemplot with integers") do - _, output = with_term { UnicodePlot.stemplot(@int80a, @int80b) } - assert_equal(fixture_path("stemplot/b2b_integers.txt").read, output) - end - - test("stemplot with strings") do - _, output = with_term { UnicodePlot.stemplot(@words_1) } - assert_equal(fixture_path("stemplot/strings.txt").read, output) - end - - test("back-to-back stemplot with strings") do - _, output = with_term { UnicodePlot.stemplot(@words_1, @words_2) } - assert_equal(fixture_path("stemplot/b2b_strings.txt").read, output) - end - - test("stemplot with strings, two-char scale") do - _, output = with_term { UnicodePlot.stemplot(@words_1, scale: 100, trim: true) } - assert_equal(fixture_path("stemplot/strings_2c.txt").read, output) - end - - test("stemplot with strings, two-char scale, string_padchar") do - _, output = with_term { UnicodePlot.stemplot(@words_1, string_padchar: '?') } - assert_equal(fixture_path("stemplot/strings_pad.txt").read, output) - end - - test("string stemplot cannot take scale less than 10") do - assert_raise(ArgumentError) do - UnicodePlot.stemplot(@words_1, scale: 9) - end - end - - test("cannot mix string/number in back to back stemplot") do - assert_raise(ArgumentError) do - UnicodePlot.stemplot(@words_1, @int80a) - end - end - - end -end diff --git a/test/test-utils.rb b/test/test-utils.rb deleted file mode 100644 index d65bbc3..0000000 --- a/test/test-utils.rb +++ /dev/null @@ -1,13 +0,0 @@ -class UnicodePlotTest < Test::Unit::TestCase - test("UnicodePlot.canvas_types") do - available_canvas_types = [:ascii, :block, :braille, :density, :dot] - assert_equal(available_canvas_types.sort, - UnicodePlot.canvas_types.sort) - end - - test("UnicodePlot.border_types") do - available_border_types = [:solid, :ascii, :corners, :barplot] - assert_equal(available_border_types.sort, - UnicodePlot.border_types.sort) - end -end diff --git a/unicode_plot.gemspec b/unicode_plot.gemspec deleted file mode 100644 index bb4bf62..0000000 --- a/unicode_plot.gemspec +++ /dev/null @@ -1,41 +0,0 @@ -lib = File.expand_path("../lib", __FILE__) -$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) -require "unicode_plot/version" - -Gem::Specification.new do |spec| - spec.name = "unicode_plot" - version_components = [ - UnicodePlot::Version::MAJOR.to_s, - UnicodePlot::Version::MINOR.to_s, - UnicodePlot::Version::MICRO.to_s, - UnicodePlot::Version::TAG - ] - spec.version = version_components.compact.join(".") - spec.authors = ["mrkn"] - spec.email = ["mrkn@mrkn.jp"] - - spec.summary = %q{Plot your data by Unicode characters} - spec.description = %q{Plot your data by Unicode characters} - spec.homepage = "https://github.com/red-data-tools/unicode_plot.rb" - spec.license = "MIT" - - spec.metadata ||= {} - spec.metadata["documentation_uri"] = "https://red-data-tools.github.io/unicode_plot.rb/#{spec.version}/" - - spec.files = ["README.md", "Rakefile", "Gemfile", "#{spec.name}.gemspec"] - spec.files << "LICENSE.txt" - spec.files.concat Dir.glob("lib/**/*.rb") - - spec.test_files.concat Dir.glob("test/**/*.rb") - - spec.bindir = "exe" - spec.executables = spec.files.grep(%r{^exe/}) {|f| File.basename(f) } - spec.require_paths = ["lib"] - - spec.add_runtime_dependency "enumerable-statistics", ">= 2.0.1" - - spec.add_development_dependency "bundler", ">= 1.17" - spec.add_development_dependency "rake" - spec.add_development_dependency "test-unit" - spec.add_development_dependency "yard" -end diff --git a/yard-helper.rb b/yard-helper.rb new file mode 100644 index 0000000..b865903 --- /dev/null +++ b/yard-helper.rb @@ -0,0 +1,28 @@ +# See https://stackoverflow.com/a/63683511/4924735 +require "kramdown" +require "kramdown-parser-gfm" + +# Custom markup provider class that always renders Kramdown using GFM (Github +# Flavored Markdown). You could add additional customizations here, or even +# call a different Markdown library altogether, like `commonmarker`. +# The only requirement is that your class supports: +# - `#initialize(markdown_text, options_hash)` +# - `#to_html()`, which just returns the converted HTML source +class KramdownGfmDocument < Kramdown::Document + def initialize(source, options={}) + options[:input] ||= "GFM" + super(source, options) + end +end + +# Register the new provider as the highest priority option for Markdown. +# Unfortunately there's no nice interface for registering your provider; you +# just have to insert it directly at the front of the array. :\ +# See also: +# - https://github.com/lsegal/yard/issues/1157 +# - https://github.com/lsegal/yard/issues/1017 +# - https://github.com/lsegal/yard/blob/main/lib/yard/templates/helpers/markup_helper.rb +YARD::Templates::Helpers::MarkupHelper::MARKUP_PROVIDERS[:markdown].insert( + 0, + { const: "KramdownGfmDocument" } +)