cw 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.cw_config +9 -18
- data/.gitignore +1 -0
- data/README.md +10 -4
- data/VERSION +1 -1
- data/calculator.rb +63 -0
- data/chart.rb +33 -0
- data/chart2.rb +35 -0
- data/chart3.rb +47 -0
- data/chart4.rb +45 -0
- data/cw.gemspec +5 -3
- data/data/callsign/callsign.yaml +78 -0
- data/data/code/code.yaml +215 -0
- data/example.rb +18 -0
- data/lib/cw.rb +3 -0
- data/lib/cw/alphabet.rb +21 -6
- data/lib/cw/audio_player.rb +5 -8
- data/lib/cw/book.rb +0 -4
- data/lib/cw/book_details.rb +19 -8
- data/lib/cw/callsign.rb +59 -0
- data/lib/cw/cl.rb +12 -11
- data/lib/cw/common_words.rb +26 -3
- data/lib/cw/config.rb +14 -3
- data/lib/cw/cw_dsl.rb +11 -0
- data/lib/cw/cw_encoding.rb +49 -53
- data/lib/cw/file_details.rb +92 -19
- data/lib/cw/print.rb +10 -0
- data/lib/cw/read.rb +341 -0
- data/lib/cw/tone_generator.rb +6 -11
- data/lib/cw/words.rb +1 -1
- data/run_script_tests.rb +1 -1
- data/test/test_config.rb +0 -20
- data/test/test_cw.rb +14 -14
- metadata +20 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f9afa759907fb0e7b21040a2ded39c2f63afa1c
|
4
|
+
data.tar.gz: 80e9d68f993ec46c96c4ca791f8a9330b24ce110
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a46e8ee242b6b3d6e1c1dd603dd7afae2e945debdc32cd3eb9e9c5256ab4260c7690fbcbe34bd582f269444eed110977c2dc210521574fc5b3f55e1e1e0e5b4
|
7
|
+
data.tar.gz: f4adad501d5e1a397eceeb966a2339af495bc49c5a60565d11da97e40924c99c195336ed050d84ced79c1ae6385100f1a22c2ac60e89a69321fa289b2d0a9e53
|
data/.cw_config
CHANGED
@@ -1,18 +1,9 @@
|
|
1
|
-
wpm
|
2
|
-
frequency
|
3
|
-
volume
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
run_default = test_letters
|
11
|
-
dictionary_dir = data/text/
|
12
|
-
dictionary_name = english.txt
|
13
|
-
audio_filename = audio_output
|
14
|
-
audio_dir = audio
|
15
|
-
book_name = book.txt
|
16
|
-
book_dir = data/text/
|
17
|
-
run_default = test_letters
|
18
|
-
word_count = 16
|
1
|
+
wpm = 25
|
2
|
+
frequency = 450
|
3
|
+
volume = 1
|
4
|
+
success_colour = green
|
5
|
+
fail_colour = red
|
6
|
+
list_colour = default
|
7
|
+
ebook2cw_path = /usr/bin/ebook2cw
|
8
|
+
run_default = test_letters
|
9
|
+
word_count = 16
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
[![Join the chat at https://gitter.im/mjago/CW](https://badges.gitter.im/mjago/CW.svg)](https://gitter.im/mjago/CW?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
1
2
|
[![Gem Version](https://badge.fury.io/rb/cw.svg)](https://badge.fury.io/rb/cw)
|
2
3
|
[![Build Status](https://travis-ci.org/mjago/CW.svg?branch=master)](https://travis-ci.org/mjago/CW)
|
3
4
|
[![Code Climate](https://codeclimate.com/github/mjago/CW/badges/gpa.svg)](https://codeclimate.com/github/mjago/CW)
|
@@ -11,10 +12,15 @@
|
|
11
12
|
|
12
13
|
**CW** is a program for learning and practicing Morse Code (CW). It is written in the form of a [DSL](https://en.wikipedia.org/wiki/Domain-specific_language/) in the [Ruby](https://www.ruby-lang.org/en/downloads/) language.
|
13
14
|
|
14
|
-
**CW** can read _books_ (and remember where you are), _rss feeds_
|
15
|
-
|
15
|
+
**CW** can read _books_ (and remember where you are), _rss feeds_
|
16
|
+
(your daily quotation for instance), common _phrases_, _QSO_ codes
|
17
|
+
etc, in addition to generating random words, letters, and numbers that
|
18
|
+
possibly match some required pattern (i.e. words_beginning_with 'v').
|
16
19
|
|
17
|
-
**CW** also allows for real-time progress marking by indicating
|
20
|
+
**CW** also allows for real-time progress marking by indicating
|
21
|
+
correct and incorrect characters and words copied in real-time. A
|
22
|
+
follow mode also exists which prints the output just after it has
|
23
|
+
played it (for `in head' practice).
|
18
24
|
|
19
25
|
**CW** is thoroughly [documented](http://mjago.github.io/CW/), and includes a [hands-on tutorial](http://martynjago.co.uk/CW/mydoc_learning_the_alphabet/).
|
20
26
|
|
@@ -28,7 +34,7 @@ cw example.rb
|
|
28
34
|
### Note:
|
29
35
|
|
30
36
|
- Requires Ruby 2+
|
31
|
-
- Tested on OS X, and Linux.
|
37
|
+
- Tested on OS X, and Linux. A Vagrantfile is available in the root directory.
|
32
38
|
|
33
39
|
# Example CW Script
|
34
40
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
data/calculator.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
SHOW_ALL = true
|
2
|
+
SHOW_TONE = true if SHOW_ALL
|
3
|
+
SHOW_N = true if SHOW_ALL
|
4
|
+
SHOW_BINWIDTH = true if SHOW_ALL
|
5
|
+
SHOW_COEFFS = true if SHOW_ALL
|
6
|
+
|
7
|
+
@sample_rate = 44100
|
8
|
+
#@sample_rate = 48000
|
9
|
+
#@sample_rate = 96000
|
10
|
+
#@sample_rate = 192000
|
11
|
+
|
12
|
+
def sample_period ; 1.0 / @sample_rate ; end
|
13
|
+
def k ; (0.5 + ((n * @tone) / @sample_rate)).to_i ; end
|
14
|
+
def w ; ((2 * Math::PI) / n) * k ; end
|
15
|
+
def n ; @sample_rate/@bin_width ; end
|
16
|
+
def cosine ; Math.cos(w) ; end
|
17
|
+
def sine ; Math.sin(w) ; end
|
18
|
+
def coeff ; 2 * cosine ; end
|
19
|
+
def bin_width(val) ; @bin_width = val ; end
|
20
|
+
def tone(val) ; @tone = val ; end
|
21
|
+
def n_delay_ms ; ((1.0/@sample_rate) * n * 1000); end
|
22
|
+
def centre_freq ; @sample_rate / n ; end
|
23
|
+
@data = [
|
24
|
+
{tone: 400, bin_width: 40},
|
25
|
+
{tone: 400, bin_width: 80},
|
26
|
+
{tone: 450, bin_width: 45},
|
27
|
+
{tone: 450, bin_width: 90},
|
28
|
+
{tone: 500, bin_width: 50},
|
29
|
+
{tone: 500, bin_width: 100},
|
30
|
+
{tone: 550, bin_width: 55},
|
31
|
+
{tone: 550, bin_width: 110},
|
32
|
+
{tone: 600, bin_width: 60},
|
33
|
+
{tone: 600, bin_width: 120},
|
34
|
+
{tone: 700, bin_width: 70},
|
35
|
+
{tone: 700, bin_width: 140},
|
36
|
+
{tone: 800, bin_width: 80},
|
37
|
+
{tone: 800, bin_width: 160},
|
38
|
+
{tone: 900, bin_width: 90},
|
39
|
+
{tone: 900, bin_width: 180},
|
40
|
+
{tone: 1000, bin_width: 50},
|
41
|
+
{tone: 1000, bin_width: 100},
|
42
|
+
]
|
43
|
+
puts "Calculator"
|
44
|
+
puts "----------"
|
45
|
+
puts
|
46
|
+
puts "Sample Rate: #{@sample_rate} Hz"
|
47
|
+
puts "Sample Period: #{sample_period * 1000000.0} usec"
|
48
|
+
puts
|
49
|
+
@data.each do |dat|
|
50
|
+
puts "* * * * * * * *"
|
51
|
+
puts "Desired Tone: #{tone(tone dat[:tone])} Hz" if SHOW_TONE
|
52
|
+
puts "Desired binwidth: #{bin_width dat[:bin_width]}" if SHOW_BINWIDTH
|
53
|
+
puts "N value: #{n}" if SHOW_N
|
54
|
+
puts "N delay: #{n_delay_ms} msec" if SHOW_N
|
55
|
+
puts "(Sample Rate / N): #{@sample_rate.to_f / n.to_f}" if SHOW_N
|
56
|
+
puts "Tone / (Sample rate / N): #{(@tone.to_f / (@sample_rate.to_f / n.to_f))} is multiple?" if SHOW_N
|
57
|
+
puts "k: #{k}" if SHOW_COEFFS
|
58
|
+
puts "w: #{w}" if SHOW_COEFFS
|
59
|
+
puts "cosine: #{cosine}" if SHOW_COEFFS
|
60
|
+
puts "sine: #{sine}" if SHOW_COEFFS
|
61
|
+
puts "coeff: #{coeff}" if SHOW_COEFFS
|
62
|
+
puts
|
63
|
+
end
|
data/chart.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'gruff'
|
2
|
+
|
3
|
+
0.upto(112) do |count|
|
4
|
+
puts "#{count}, #{100 + count * 8}"
|
5
|
+
end
|
6
|
+
|
7
|
+
def test_line_small_values
|
8
|
+
@datasets = [
|
9
|
+
[:narrow, [0.0,0.198,0.156,0.356,0.333,0.356,0.227,0.255,0.317,0.409,0.402,0.393,0.343,0.109,0.305,0.428,0.456,0.392,0.242,0.419,0.296,0.467,0.585,0.458,0.454,0.253,0.286,0.762,0.672,0.595,0.577,0.443,0.275,0.603,0.81,0.909,0.716,0.632,0.264,1.368,1.356,1.352,1.221,1.155,2.182,4.018,4.095,3.919,4.933,5.584,5.78,5.78,5.543,4.931,3.782,3.318,1.608,0.637,1.861,1.339,1.371,1.275,1.098,0.647,0.619,0.952,0.932,0.786,0.814,0.366,0.384,0.567,0.599,0.771,0.425,0.478,0.881,0.519,0.485,0.566,0.331,0.25,0.159,0.325,0.403,0.526,0.381,0.206,0.236,0.25,0.339,0.393,0.289,0.26,0.311,0.187,0.287,0.32,0.269,0.324,0.409,0.514,0.242,0.282,0.251,0.405,0.471,0.225,0.201,0.366,0.241,0.271,0.306]],
|
10
|
+
[:wide, [0.198,0.092,0.187,0.257,0.334,0.369,0.369,0.397,0.4,0.368,0.317,0.323,0.333,0.099,0.165,0.264,0.392,0.428,0.474,0.492,0.48,0.436,0.661,0.395,0.253,0.137,0.147,0.853,0.602,0.7,0.637,0.876,0.733,0.733,1.055,0.634,0.531,0.347,0.133,1.272,1.376,1.061,1.724,2.287,2.009,2.268,2.507,2.688,2.815,2.883,2.89,2.89,2.882,2.794,2.676,2.496,2.267,1.953,2.47,1.511,1.05,0.832,0.848,0.63,0.333,1.429,0.617,0.685,0.744,0.727,0.703,0.622,0.508,0.858,0.265,0.478,0.914,0.296,0.333,0.525,0.435,0.444,0.47,0.526,0.406,0.485,0.212,0.13,0.243,0.134,0.21,0.36,0.31,0.33,0.346,0.328,0.302,0.351,0.2,0.308,0.398,0.514,0.138,0.193,0.234,0.26,0.268,0.26,0.289,0.236,0.169,0.42,0.341]],
|
11
|
+
[:v_narrow, [0.0,0.198,0.175,0.326,0.301,0.189,0.109,0.243,0.292,0.37,0.214,0.27,0.33,0.201,0.438,0.47,0.17,0.489,0.296,0.412,0.48,0.45,0.349,0.486,0.479,0.357,0.501,0.67,0.554,0.506,0.637,0.443,0.511,0.769,0.762,0.742,0.923,0.81,0.511,1.292,1.494,0.683,1.73,1.479,1.957,2.885,2.288,2.188,6.903,9.976,11.56,11.56,10.212,5.167,6.356,3.505,2.15,1.184,1.497,1.331,0.72,1.127,0.959,0.646,0.902,0.786,0.45,0.744,0.608,0.469,0.622,0.492,0.45,0.522,0.522,0.478,0.881,0.454,0.418,0.363,0.564,0.313,0.296,0.414,0.372,0.497,0.39,0.3,0.314,0.364,0.238,0.199,0.337,0.235,0.277,0.302,0.336,0.493,0.277,0.274,0.385,0.514,0.259,0.207,0.214,0.26,0.359,0.189,0.256,0.255,0.149,0.25,0.214]]
|
12
|
+
]
|
13
|
+
|
14
|
+
g = Gruff::Line.new
|
15
|
+
g.title = 'Different bin widths'
|
16
|
+
@datasets.each do |data|
|
17
|
+
g.hide_dots = true
|
18
|
+
g.data(data[0], data[1])
|
19
|
+
g.labels = {0 => '100', 50 => '500', 112 => '1000'}
|
20
|
+
end
|
21
|
+
g.write('test/output/different_bin_widths.png')
|
22
|
+
|
23
|
+
g = Gruff::Line.new(400)
|
24
|
+
g.title = 'Different bin widths'
|
25
|
+
g.hide_dots = true
|
26
|
+
@datasets.each do |data|
|
27
|
+
g.data(data[0], data[1])
|
28
|
+
g.labels = {0 => '100'}
|
29
|
+
end
|
30
|
+
g.write('test/output/different_bin_widths_small.png')
|
31
|
+
end
|
32
|
+
|
33
|
+
test_line_small_values
|
data/chart2.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'gruff'
|
2
|
+
|
3
|
+
count = 0
|
4
|
+
(0..1000).step(8) do |idx|
|
5
|
+
puts "#{count}, #{idx}"
|
6
|
+
count += 1
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_line_small_values
|
10
|
+
@datasets = [
|
11
|
+
[:wide, [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.112,0.288,0.365,0.272,0.313,0.142,0.061,0.167,0.219,0.302,0.337,0.39,0.405,0.39,0.39,0.312,0.288,0.354,0.27,0.462,0.218,0.315,0.641,0.455,0.487,0.489,0.461,0.461,0.402,0.702,0.623,0.073,0.451,0.362,0.498,0.607,0.686,0.728,0.712,0.748,0.671,1.177,0.432,0.233,0.977,0.576,0.897,1.225,1.538,2.088,2.546,2.398,2.604,2.758,2.856,2.894,2.894,2.89,2.85,2.764,2.546,2.374,2.102,1.831,1.752,1.211,1.887,0.568,0.698,0.87,0.422,0.564,0.683,0.701,0.701,0.7,0.869,0.656,0.88,0.565,0.414,0.424,0.188,0.29,0.368,0.42,0.443,0.438,0.429,0.514,0.351,0.276,0.189,0.389,0.36,0.547,0.242,0.471,0.322,0.332,0.321,0.319,0.288,0.237,0.177,0.158,0.237,0.106,0.167,0.215,0.38,0.413,0.266,0.25,0.301,0.214,0.281,0.215,0.062]],
|
12
|
+
[:narrow, [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.385,0.267,0.321,0.246,0.272,0.087,0.191,0.25,0.369,0.375,0.272,0.119,0.241,0.375,0.419,0.37,0.324,0.27,0.395,0.38,0.424,0.453,0.281,0.573,0.463,0.392,0.513,0.596,0.562,0.629,0.145,0.412,0.586,0.634,0.556,0.516,0.678,0.44,0.726,0.845,0.845,0.729,0.388,0.977,1.01,1.307,1.313,1.241,0.951,2.313,3.813,3.32,4.463,5.325,5.742,5.742,5.729,5.304,4.458,4.101,2.027,3.256,0.952,1.302,1.365,1.345,0.974,0.698,1.058,0.739,0.822,1.224,0.682,0.464,1.211,0.677,0.602,0.671,0.499,0.545,0.473,0.349,0.469,0.47,0.723,0.292,0.609,0.244,0.598,0.405,0.379,0.331,0.476,0.291,0.42,0.352,0.336,0.24,0.199,0.12,0.247,0.309,0.29,0.223,0.188,0.219,0.197,0.27,0.274,0.212,0.25,0.079,0.155,0.235,0.255,0.249,0.232,0.118]],
|
13
|
+
[:v_narrow, [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.385,0.328,0.32,0.138,0.461,0.124,0.039,0.141,0.233,0.407,0.23,0.264,0.263,0.329,0.266,0.383,0.352,0.321,0.395,0.4,0.406,0.341,0.455,0.548,0.341,0.501,0.333,0.31,0.55,0.538,0.281,0.601,0.649,0.319,0.659,0.523,0.733,0.712,0.707,0.769,0.811,0.94,0.632,0.977,1.082,1.022,1.118,1.538,1.53,2.081,2.603,2.571,2.758,7.909,11.123,11.123,11.04,7.693,2.668,4.383,2.543,3.41,1.541,1.491,1.109,1.067,1.155,1.109,1.058,1.074,0.736,0.704,0.701,0.701,1.061,0.717,0.559,0.345,0.651,0.56,0.549,0.509,0.559,0.261,0.456,0.431,0.529,0.396,0.402,0.243,0.358,0.326,0.559,0.312,0.463,0.28,0.358,0.322,0.296,0.223,0.315,0.515,0.207,0.303,0.291,0.258,0.288,0.18,0.18,0.324,0.259,0.112,0.25,0.277,0.199,0.286,0.24,0.203]]
|
14
|
+
]
|
15
|
+
|
16
|
+
g = Gruff::Line.new
|
17
|
+
g.title = 'Different bin widths'
|
18
|
+
@datasets.each do |data|
|
19
|
+
g.hide_dots = true
|
20
|
+
g.data(data[0], data[1])
|
21
|
+
g.labels = {0 => '0', 31 => '248', 62 => '498', 93 => '744', 124 => '992', 125 => nil}
|
22
|
+
end
|
23
|
+
g.write('test/output/differing_bin_widths.png')
|
24
|
+
|
25
|
+
g = Gruff::Line.new(400)
|
26
|
+
g.title = 'Different bin widths'
|
27
|
+
g.hide_dots = true
|
28
|
+
@datasets.each do |data|
|
29
|
+
g.data(data[0], data[1])
|
30
|
+
g.labels = {0 => '100'}
|
31
|
+
end
|
32
|
+
g.write('test/output/differing_bin_widths_small.png')
|
33
|
+
end
|
34
|
+
|
35
|
+
test_line_small_values
|
data/chart3.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'gruff'
|
2
|
+
|
3
|
+
count = 0
|
4
|
+
(0..1000).step(2) do |idx|
|
5
|
+
puts "#{count}, #{idx}"
|
6
|
+
count += 1
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_line_small_values
|
10
|
+
@datasets = [
|
11
|
+
[:wide, [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.033,0.114,0.0,0.0,0.0,0.282,0.117,0.032,0.19,0.272,0.362,0.366,0.319,0.208,0.149,0.319,0.114,0.309,0.085,0.289,0.256,0.239,0.222,0.197,0.18,0.315,0.142,0.117,0.095,0.464,0.043,0.397,0.292,0.109,0.369,0.467,0.12,0.23,0.193,0.298,0.264,0.208,0.301,0.236,0.339,0.3,0.319,0.329,0.345,0.342,0.359,0.379,0.388,0.388,0.412,0.322,0.397,0.35,0.404,0.403,0.394,0.421,0.375,0.373,0.367,0.354,0.329,0.326,0.322,0.288,0.286,0.29,0.248,0.221,0.308,0.193,0.483,0.459,0.103,0.055,0.497,0.412,0.344,0.513,0.173,0.111,0.138,0.165,0.192,0.218,0.243,0.262,0.291,0.315,0.337,0.464,0.371,0.396,0.413,0.428,0.442,0.454,0.465,0.49,0.481,0.487,0.318,0.492,0.492,0.49,0.486,0.486,0.472,0.614,0.664,0.463,0.47,0.413,0.482,0.379,0.462,0.311,0.371,0.681,0.255,0.233,0.519,0.171,0.417,0.098,0.068,0.034,0.154,0.074,0.269,0.561,0.578,0.222,0.362,0.715,0.446,0.366,0.8,0.434,0.845,0.497,0.527,0.556,0.582,0.607,0.63,0.839,0.869,0.686,0.858,0.712,0.554,0.728,0.732,0.784,0.831,0.731,0.719,0.718,0.706,1.125,0.661,0.739,0.609,0.596,0.575,1.16,0.575,1.302,0.417,0.86,0.922,1.328,1.682,0.181,0.148,1.134,0.306,0.724,1.188,1.691,0.343,1.031,0.506,1.114,0.655,0.735,0.815,0.897,0.979,1.06,1.143,2.217,1.307,1.389,1.76,1.545,1.793,1.709,1.787,2.505,2.434,2.009,2.079,2.148,2.214,2.267,2.388,2.398,2.454,2.507,2.548,2.604,2.648,2.688,2.725,2.759,2.788,2.815,2.837,2.856,2.87,2.883,2.89,2.894,2.894,2.89,2.894,2.894,2.89,2.882,2.874,2.868,2.854,2.833,2.789,2.781,2.763,2.687,2.683,2.623,2.6,2.553,2.485,2.441,2.392,2.325,2.252,2.458,2.136,2.444,1.951,1.853,1.931,2.357,2.07,2.318,1.809,1.446,1.42,1.765,1.215,1.766,1.017,1.869,2.023,0.801,1.056,0.687,1.112,0.485,2.05,0.773,0.721,0.421,0.975,1.226,1.7,1.407,0.363,1.33,0.302,1.786,0.673,0.422,0.462,0.921,0.533,0.792,0.592,0.616,0.636,0.657,0.673,0.685,0.695,0.694,0.705,0.706,0.705,0.718,0.705,0.696,0.822,0.657,0.926,0.636,0.65,0.6,0.599,0.629,0.509,0.5,0.472,0.903,0.848,0.593,1.014,0.313,0.437,0.41,0.569,0.144,0.983,0.095,0.669,0.238,0.874,0.716,0.118,0.353,0.388,0.485,0.215,0.889,0.266,0.736,0.432,0.332,0.352,0.369,0.374,0.398,0.41,0.42,0.428,0.433,0.445,0.453,0.444,0.444,0.436,0.451,0.437,0.431,0.527,0.404,0.404,0.393,0.38,0.353,0.346,0.329,0.557,0.277,0.263,0.379,0.423,0.222,0.189,0.187,0.144,0.109,0.589,0.137,0.342,0.439,0.409,0.047,0.286,0.109,0.352,0.285,0.155,0.174,0.192,0.21,0.478,0.242,0.491,0.27,0.279,0.292,0.338,0.424,0.317,0.322,0.327,0.33,0.332,0.357,0.284,0.38,0.325,0.324,0.314,0.411,0.305,0.302,0.288,0.47,0.299,0.53,0.228,0.218,0.198,0.193,0.177,0.165,0.146,0.13,0.206,0.268,0.441,0.38,0.034,0.032,0.442,0.037,0.055,0.556,0.088,0.432,0.122,0.138,0.153,0.167,0.267,0.193,0.204,0.311,0.218,0.234,0.242,0.249,0.255,0.256,0.329,0.344,0.268,0.268,0.268,0.266,0.264,0.26,0.274,0.249,0.302,0.399,0.367,0.226,0.214,0.367,0.187,0.256,0.22,0.159,0.309,0.367,0.12,0.149,0.09,0.319,0.061,0.26,0.228,0.163]],
|
12
|
+
[:narrow, [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.145,0.0,0.2,0.0,0.239,0.224,0.0,0.069,0.085,0.158,0.046,0.049,0.041,0.186,0.198,0.215,0.308,0.078,0.298,0.266,0.127,0.208,0.238,0.253,0.394,0.188,0.21,0.18,0.411,0.093,0.397,0.0,0.285,0.307,0.502,0.19,0.213,0.275,0.299,0.429,0.397,0.405,0.381,0.363,0.472,0.387,0.364,0.34,0.342,0.301,0.301,0.185,0.172,0.141,0.239,0.3,0.171,0.101,0.308,0.395,0.232,0.281,0.317,0.332,0.388,0.481,0.407,0.469,0.289,0.391,0.41,0.383,0.383,0.417,0.293,0.36,0.486,0.182,0.111,0.476,0.416,0.344,0.468,0.167,0.211,0.256,0.283,0.346,0.38,0.411,0.424,0.445,0.459,0.386,0.552,0.442,0.524,0.398,0.405,0.35,0.281,0.656,0.215,0.644,0.545,0.559,0.379,0.65,0.216,0.238,0.456,0.744,0.392,0.433,0.467,0.531,0.513,0.525,0.495,0.643,0.517,0.488,0.809,0.419,0.401,0.635,0.322,0.507,0.202,0.121,0.06,0.132,0.145,0.283,0.578,0.447,0.412,0.468,0.525,0.648,0.593,0.617,0.633,0.755,0.634,0.604,0.652,0.793,0.517,0.571,0.401,0.375,0.939,0.253,0.664,0.16,0.847,0.258,0.275,0.697,0.443,1.069,0.717,0.669,0.726,0.821,0.809,0.956,0.845,0.843,0.817,0.968,1.06,0.751,1.119,1.057,1.113,1.635,0.324,0.255,1.164,0.306,0.66,1.278,1.57,0.66,1.346,0.902,1.009,1.106,1.189,1.256,1.307,1.34,1.352,1.346,1.313,1.311,1.26,1.159,1.43,0.955,1.876,0.702,1.749,0.967,2.188,2.261,1.133,3.353,2.026,3.652,4.001,2.365,2.687,3.006,3.32,3.625,3.919,4.2,4.464,4.719,4.933,5.135,5.311,5.465,5.584,5.678,5.742,5.776,5.78,5.78,5.77,5.712,5.661,5.526,5.46,5.279,5.082,4.93,4.689,4.68,4.869,3.786,3.617,4.049,2.897,3.425,2.347,2.029,1.673,3.017,3.505,3.399,3.299,0.524,1.776,3.383,2.169,0.806,0.951,1.972,1.174,1.25,1.302,1.326,1.47,1.394,1.314,1.242,1.175,1.145,1.091,1.246,0.832,1.815,1.023,0.751,0.547,1.076,1.267,1.7,1.395,0.362,1.38,0.54,1.594,0.826,0.739,0.797,1.082,0.821,0.9,0.884,0.805,0.863,0.746,0.785,0.802,1.294,1.094,0.497,0.343,0.399,1.324,1.291,0.093,0.433,0.308,0.568,0.383,0.531,0.787,1.033,0.749,0.583,0.683,0.606,0.6,0.586,0.562,0.757,0.491,0.478,0.44,0.688,0.268,0.919,0.156,0.693,0.212,0.874,0.691,0.206,0.273,0.503,0.375,0.389,0.799,0.45,0.513,0.581,0.485,0.518,0.608,0.475,0.452,0.676,0.407,0.421,0.802,0.46,0.688,0.165,0.476,0.757,0.405,0.108,0.708,0.636,0.429,0.667,0.325,0.353,0.376,0.392,0.403,0.407,0.404,0.396,0.395,0.403,0.351,0.331,0.267,0.259,0.219,0.63,0.209,0.386,0.457,0.394,0.093,0.278,0.178,0.412,0.25,0.279,0.305,0.325,0.339,0.424,0.353,0.351,0.344,0.329,0.318,0.3,0.281,0.43,0.211,0.199,0.148,0.339,0.299,0.056,0.062,0.081,0.12,0.268,0.188,0.485,0.47,0.269,0.287,0.299,0.309,0.312,0.311,0.351,0.304,0.278,0.258,0.241,0.22,0.174,0.192,0.446,0.358,0.071,0.046,0.444,0.073,0.108,0.548,0.169,0.467,0.221,0.242,0.258,0.27,0.278,0.281,0.28,0.281,0.319,0.268,0.233,0.259,0.263,0.296,0.286,0.167,0.069,0.185,0.063,0.164,0.15,0.378,0.127,0.157,0.334,0.201,0.22,0.419,0.267,0.253,0.256,0.255,0.25,0.25,0.242,0.267,0.209,0.193,0.146,0.344,0.119,0.285,0.24,0.173]],
|
13
|
+
[:v_narrow, [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.145,0.0,0.0,0.316,0.0,0.0,0.0,0.171,0.0,0.08,0.0,0.025,0.0,0.208,0.205,0.0,0.1,0.037,0.101,0.225,0.0,0.09,0.145,0.268,0.166,0.141,0.349,0.273,0.428,0.077,0.033,0.397,0.285,0.275,0.238,0.437,0.162,0.136,0.242,0.37,0.318,0.229,0.144,0.379,0.178,0.365,0.214,0.262,0.342,0.374,0.299,0.138,0.332,0.259,0.15,0.296,0.212,0.192,0.319,0.217,0.375,0.371,0.363,0.407,0.294,0.3,0.335,0.19,0.051,0.154,0.555,0.265,0.378,0.362,0.447,0.404,0.364,0.295,0.199,0.406,0.416,0.344,0.43,0.29,0.371,0.401,0.414,0.414,0.482,0.352,0.532,0.35,0.293,0.328,0.277,0.273,0.351,0.424,0.459,0.47,0.475,0.591,0.405,0.713,0.488,0.559,0.379,0.647,0.341,0.423,0.508,0.526,0.629,0.46,0.397,0.431,0.42,0.139,0.136,0.194,0.31,0.415,0.491,0.537,0.549,0.52,0.471,0.45,0.384,0.181,0.114,0.144,0.271,0.403,0.498,0.568,0.583,0.597,0.554,0.476,0.366,0.554,0.231,0.154,0.367,0.373,0.505,0.601,0.658,0.668,0.675,0.649,0.941,0.432,0.614,0.176,0.847,0.361,0.511,0.927,0.717,0.733,0.769,0.98,0.627,0.719,0.805,0.516,0.106,0.517,0.729,0.68,0.811,0.894,0.921,1.162,0.891,1.301,0.609,0.458,1.164,0.306,0.533,1.405,1.153,1.068,1.144,1.169,1.082,1.548,1.05,0.674,0.457,0.843,0.786,0.821,2.237,1.35,1.508,1.768,1.545,1.565,1.467,1.077,1.541,1.075,2.162,2.493,1.497,2.634,2.267,3.293,2.604,2.6,4.55,3.257,2.232,2.458,0.493,3.459,8.02,4.01,5.286,6.546,7.743,9.437,9.787,10.558,11.123,11.461,11.56,11.56,11.433,11.036,10.555,10.611,8.762,7.732,6.365,5.159,3.936,4.241,3.031,4.116,1.258,5.142,2.284,2.528,2.652,2.504,2.502,2.252,3.631,2.692,3.569,0.524,1.729,3.382,2.216,1.412,1.539,1.567,1.497,1.546,1.692,1.108,1.134,0.476,0.763,0.466,1.313,0.93,1.067,1.21,1.128,1.136,1.359,1.091,0.664,1.243,1.267,1.738,1.462,0.651,1.222,0.874,0.982,0.874,0.853,0.745,0.573,0.633,0.743,1.346,0.805,0.461,0.6,0.695,0.744,0.772,0.757,0.615,0.612,0.479,1.284,1.278,0.17,0.434,0.458,0.559,0.619,0.766,0.629,0.596,0.6,0.364,0.299,0.727,1.049,0.219,1.035,0.751,0.523,0.562,0.566,0.599,0.469,0.723,0.322,0.684,0.212,0.874,0.789,0.358,0.438,0.618,0.509,0.514,0.496,0.383,0.729,0.243,0.387,0.812,0.187,0.279,0.363,0.423,0.621,0.46,0.651,0.437,0.548,0.26,0.559,0.77,0.374,0.21,0.664,0.484,0.411,0.537,0.414,0.388,0.606,0.32,0.223,0.105,0.42,0.148,0.635,0.307,0.358,0.386,0.477,0.401,0.326,0.607,0.213,0.405,0.457,0.363,0.18,0.254,0.311,0.427,0.364,0.356,0.327,0.4,0.275,0.265,0.085,0.55,0.129,0.203,0.267,0.334,0.434,0.34,0.322,0.296,0.285,0.319,0.338,0.08,0.082,0.158,0.223,0.274,0.305,0.434,0.345,0.29,0.255,0.481,0.185,0.202,0.077,0.215,0.177,0.237,0.277,0.299,0.353,0.281,0.295,0.438,0.313,0.143,0.078,0.444,0.141,0.2,0.491,0.274,0.316,0.282,0.309,0.253,0.211,0.32,0.224,0.109,0.414,0.231,0.214,0.25,0.27,0.274,0.269,0.234,0.235,0.158,0.203,0.053,0.15,0.128,0.347,0.223,0.249,0.262,0.344,0.333,0.235,0.182,0.148,0.09,0.167,0.2,0.146,0.356,0.228,0.247,0.25,0.23,0.351,0.17,0.266,0.258,0.19]]
|
14
|
+
]
|
15
|
+
|
16
|
+
g = Gruff::Line.new
|
17
|
+
g.title = 'Different bin widths'
|
18
|
+
@datasets.each do |data|
|
19
|
+
# g.theme = Gruff::Themes::THIRTYSEVEN_SIGNALS
|
20
|
+
g.hide_dots = true
|
21
|
+
g.data(data[0], data[1])
|
22
|
+
g.labels = {0 => '0', 125 => '250', 250 => '500', 375 => '750', 500 => '1000'}
|
23
|
+
end
|
24
|
+
g.write('test/output/differing_bin_widths.png')
|
25
|
+
|
26
|
+
g = Gruff::Line.new(400)
|
27
|
+
g.title = 'Different bin widths'
|
28
|
+
# g.theme = Gruff::Themes::THIRTYSEVEN_SIGNALS
|
29
|
+
g.hide_dots = true
|
30
|
+
@datasets.each do |data|
|
31
|
+
g.data(data[0], data[1])
|
32
|
+
g.labels = {0 => '0', 125 => '250', 250 => '500', 375 => '750', 500 => '1000'}
|
33
|
+
end
|
34
|
+
g.write('test/output/differing_bin_widths_small.png')
|
35
|
+
|
36
|
+
g = Gruff::Line.new(1600)
|
37
|
+
g.title = 'Different bin widths'
|
38
|
+
# g.theme = Gruff::Themes::THIRTYSEVEN_SIGNALS
|
39
|
+
g.hide_dots = true
|
40
|
+
@datasets.each do |data|
|
41
|
+
g.data(data[0], data[1])
|
42
|
+
g.labels = {0 => '0', 125 => '250', 250 => '500', 375 => '750', 500 => '1000'}
|
43
|
+
end
|
44
|
+
g.write('test/output/differing_bin_widths_large.png')
|
45
|
+
end
|
46
|
+
|
47
|
+
test_line_small_values
|
data/chart4.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'gruff'
|
2
|
+
|
3
|
+
count = 0
|
4
|
+
(0..1000).step(2) do |idx|
|
5
|
+
puts "#{count}, #{idx}"
|
6
|
+
count += 1
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_line_small_values
|
10
|
+
@datasets = [
|
11
|
+
[:millisecs, [70.0,63.333333333333336,62.22222222222223,58.14814814814815,58.76543209876544,59.176954732510296,59.45130315500686,59.634202103337905,59.75613473555861,56.50408982370575,54.3360598824705,52.89070658831366,51.927137725542444,51.284758483694965,50.85650565579664,50.57100377053109,50.38066918035406,50.25377945356937,50.16918630237958,50.11279086825306,50.07519391216871,50.050129274779145,50.03341951651944,50.02227967767963,50.01485311845308,46.67656874563539,47.78437916375693,48.52291944250462,49.01527962833641,49.34351975222427,49.56234650148284,49.708231000988555,49.80548733399237,49.87032488932825,46.580216592885506,44.38681106192367,42.92454070794912,41.94969380529941,44.63312920353294,43.088752802355295,42.05916853490353,41.372779023269025,40.91518601551269,40.61012401034179,40.40674934022786,40.27116622681857,40.18077748454571,40.12051832303047,40.08034554868698,40.05356369912465,40.035709132749766,40.02380608849984,40.01587072566656,40.01058048377771,40.00705365585181,40.00470243723455,40.00313495815637,40.00208997210425,40.00139331473616,36.66759554315744,37.77839702877162,38.518931352514414,39.01262090167628,39.34174726778419,39.56116484518947,39.70744323012631,39.804962153417534,39.86997476894502,39.91331651263001,36.60887767508668,34.40591845005779,36.27061230003852,37.51374153335902,38.34249435557268,35.561662903715124,37.041108602476754,38.027405734984505,38.68493715665634,39.12329143777089,36.08219429184726,37.38812952789817,34.925419685265446,36.61694645684363,34.41129763789576,36.27419842526384,34.1827989501759,36.121865966783936,34.081243977855955,36.05416265190397,37.369441767935974,38.24629451195731,38.83086300797154,39.2205753386477,39.48038355909847,39.65358903939898,39.76905935959932,39.84603957306621,39.89735971537747,39.93157314358498,36.62104876238999,34.41403250825999,36.27602167217333,37.51734778144888,35.011565187632584,36.67437679175506,34.44958452783671,32.96638968522448,31.977593123482986,34.65172874898866,33.10115249932577,32.067434999550514,34.71162333303368,33.141082222022455,32.094054814681634,34.72936987645443,33.15291325096962,32.10194216731308,34.734628111542044,33.15641874102803,32.10427916068535,31.402852773790233,30.93523518252682,33.95682345501788,35.971215636678586,33.980810424452386,32.65387361630159,31.769249077534393,31.179499385022933,34.11966625668196,36.07977750445465,37.386518336303105,38.25767889086874,38.838452593912486,35.89230172927498,47.261534486183315,54.84102299078887,46.56068199385925,41.040454662572834,50.69363644171523,57.12909096114348,39.83515153828599,49.890101025524,56.59340068368266,47.728933789121776,55.15262252608119,46.76841501738746,54.51227667825831,46.34151778550554]]
|
12
|
+
]
|
13
|
+
|
14
|
+
g = Gruff::Line.new
|
15
|
+
g.title = 'Millisecs'
|
16
|
+
@datasets.each do |data|
|
17
|
+
# g.theme = Gruff::Themes::THIRTYSEVEN_SIGNALS
|
18
|
+
g.hide_dots = true
|
19
|
+
g.data(data[0], data[1])
|
20
|
+
g.labels = {0 => '0', 125 => '250', 250 => '500', 375 => '750', 500 => '1000'}
|
21
|
+
end
|
22
|
+
g.write('test/output/millisecs.png')
|
23
|
+
|
24
|
+
g = Gruff::Line.new(400)
|
25
|
+
g.title = 'Millisecs'
|
26
|
+
# g.theme = Gruff::Themes::THIRTYSEVEN_SIGNALS
|
27
|
+
g.hide_dots = true
|
28
|
+
@datasets.each do |data|
|
29
|
+
g.data(data[0], data[1])
|
30
|
+
g.labels = {0 => '0', 125 => '250', 250 => '500', 375 => '750', 500 => '1000'}
|
31
|
+
end
|
32
|
+
g.write('test/output/millisecs_small.png')
|
33
|
+
|
34
|
+
g = Gruff::Line.new(1600)
|
35
|
+
g.title = 'Millisecs'
|
36
|
+
# g.theme = Gruff::Themes::THIRTYSEVEN_SIGNALS
|
37
|
+
g.hide_dots = true
|
38
|
+
@datasets.each do |data|
|
39
|
+
g.data(data[0], data[1])
|
40
|
+
g.labels = {0 => '0', 125 => '250', 250 => '500', 375 => '750', 500 => '1000'}
|
41
|
+
end
|
42
|
+
g.write('test/output/millisecs_large.png')
|
43
|
+
end
|
44
|
+
|
45
|
+
test_line_small_values
|
data/cw.gemspec
CHANGED
@@ -24,15 +24,17 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_runtime_dependency 'paint', '>= 1.0.1'
|
25
25
|
spec.add_runtime_dependency 'rake', '>= 11.2.2'
|
26
26
|
spec.add_runtime_dependency 'ruby-progressbar', '>= 1.8.1'
|
27
|
-
spec.add_runtime_dependency 'sanitize', '~> 4.
|
27
|
+
spec.add_runtime_dependency 'sanitize', '~> 4.2.0'
|
28
28
|
spec.add_runtime_dependency 'wavefile', '>= 0.7.0'
|
29
29
|
spec.add_runtime_dependency 'parseconfig', '~> 1.0.8'
|
30
30
|
spec.add_dependency 'os', '~> 0.9.6'
|
31
31
|
|
32
|
+
# remove dependency for live version (used for reading on OSX) spec.add_runtime_dependency 'coreaudio', '~> 0.0.11'
|
33
|
+
|
32
34
|
spec.add_development_dependency 'version', '>= 1.0.0'
|
33
35
|
spec.add_development_dependency 'minitest', '>= 5.8.4'
|
34
36
|
spec.add_development_dependency 'simplecov', '>= 0.12.0'
|
35
37
|
spec.add_development_dependency 'yard', '~> 0.9.5'
|
36
|
-
spec.add_development_dependency 'sequel'
|
37
|
-
spec.add_development_dependency 'sqlite3'
|
38
|
+
spec.add_development_dependency 'sequel', '~> 4.38.0'
|
39
|
+
spec.add_development_dependency 'sqlite3', '~> 1.3.11'
|
38
40
|
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
---
|
2
|
+
:uk:
|
3
|
+
:partial_0:
|
4
|
+
:option:
|
5
|
+
- g
|
6
|
+
- m
|
7
|
+
- 2e
|
8
|
+
- gm
|
9
|
+
- mm
|
10
|
+
- gw
|
11
|
+
- mw
|
12
|
+
- ei
|
13
|
+
- mi
|
14
|
+
- gb
|
15
|
+
:weight:
|
16
|
+
- 40
|
17
|
+
- 20
|
18
|
+
- 10
|
19
|
+
- 4
|
20
|
+
- 2
|
21
|
+
- 4
|
22
|
+
- 2
|
23
|
+
- 5
|
24
|
+
- 9
|
25
|
+
- 4
|
26
|
+
:partial_1:
|
27
|
+
:option:
|
28
|
+
- '0'
|
29
|
+
- '4'
|
30
|
+
- '1'
|
31
|
+
- '2'
|
32
|
+
- '3'
|
33
|
+
- '4'
|
34
|
+
- '5'
|
35
|
+
- '6'
|
36
|
+
- '7'
|
37
|
+
- '8'
|
38
|
+
- '9'
|
39
|
+
- '0'
|
40
|
+
:weight:
|
41
|
+
- 10
|
42
|
+
- 10
|
43
|
+
- 10
|
44
|
+
- 10
|
45
|
+
- 10
|
46
|
+
- 10
|
47
|
+
- 10
|
48
|
+
- 10
|
49
|
+
- 10
|
50
|
+
- 10
|
51
|
+
- 10
|
52
|
+
- 10
|
53
|
+
:partial_2:
|
54
|
+
:option:
|
55
|
+
- !ruby/range
|
56
|
+
begin: a
|
57
|
+
end: z
|
58
|
+
excl: false
|
59
|
+
:weight:
|
60
|
+
- 100
|
61
|
+
:partial_3:
|
62
|
+
:option:
|
63
|
+
- !ruby/range
|
64
|
+
begin: a
|
65
|
+
end: z
|
66
|
+
excl: false
|
67
|
+
:weight:
|
68
|
+
- 100
|
69
|
+
:partial_4:
|
70
|
+
:option:
|
71
|
+
- !ruby/range
|
72
|
+
begin: a
|
73
|
+
end: z
|
74
|
+
excl: false
|
75
|
+
- ''
|
76
|
+
:weight:
|
77
|
+
- 99
|
78
|
+
- 1
|
data/data/code/code.yaml
ADDED
@@ -0,0 +1,215 @@
|
|
1
|
+
---
|
2
|
+
a:
|
3
|
+
- :dot
|
4
|
+
- :dash
|
5
|
+
b:
|
6
|
+
- :dash
|
7
|
+
- :dot
|
8
|
+
- :dot
|
9
|
+
- :dot
|
10
|
+
c:
|
11
|
+
- :dash
|
12
|
+
- :dot
|
13
|
+
- :dash
|
14
|
+
- :dot
|
15
|
+
d:
|
16
|
+
- :dash
|
17
|
+
- :dot
|
18
|
+
- :dot
|
19
|
+
e:
|
20
|
+
- :dot
|
21
|
+
f:
|
22
|
+
- :dot
|
23
|
+
- :dot
|
24
|
+
- :dash
|
25
|
+
- :dot
|
26
|
+
g:
|
27
|
+
- :dash
|
28
|
+
- :dash
|
29
|
+
- :dot
|
30
|
+
h:
|
31
|
+
- :dot
|
32
|
+
- :dot
|
33
|
+
- :dot
|
34
|
+
- :dot
|
35
|
+
i:
|
36
|
+
- :dot
|
37
|
+
- :dot
|
38
|
+
j:
|
39
|
+
- :dot
|
40
|
+
- :dash
|
41
|
+
- :dash
|
42
|
+
- :dash
|
43
|
+
k:
|
44
|
+
- :dash
|
45
|
+
- :dot
|
46
|
+
- :dash
|
47
|
+
l:
|
48
|
+
- :dot
|
49
|
+
- :dash
|
50
|
+
- :dot
|
51
|
+
- :dot
|
52
|
+
m:
|
53
|
+
- :dash
|
54
|
+
- :dash
|
55
|
+
n:
|
56
|
+
- :dash
|
57
|
+
- :dot
|
58
|
+
o:
|
59
|
+
- :dash
|
60
|
+
- :dash
|
61
|
+
- :dash
|
62
|
+
p:
|
63
|
+
- :dot
|
64
|
+
- :dash
|
65
|
+
- :dash
|
66
|
+
- :dot
|
67
|
+
q:
|
68
|
+
- :dash
|
69
|
+
- :dash
|
70
|
+
- :dot
|
71
|
+
- :dash
|
72
|
+
r:
|
73
|
+
- :dot
|
74
|
+
- :dash
|
75
|
+
- :dot
|
76
|
+
s:
|
77
|
+
- :dot
|
78
|
+
- :dot
|
79
|
+
- :dot
|
80
|
+
t:
|
81
|
+
- :dash
|
82
|
+
u:
|
83
|
+
- :dot
|
84
|
+
- :dot
|
85
|
+
- :dash
|
86
|
+
v:
|
87
|
+
- :dot
|
88
|
+
- :dot
|
89
|
+
- :dot
|
90
|
+
- :dash
|
91
|
+
w:
|
92
|
+
- :dot
|
93
|
+
- :dash
|
94
|
+
- :dash
|
95
|
+
x:
|
96
|
+
- :dash
|
97
|
+
- :dot
|
98
|
+
- :dot
|
99
|
+
- :dash
|
100
|
+
y:
|
101
|
+
- :dash
|
102
|
+
- :dot
|
103
|
+
- :dash
|
104
|
+
- :dash
|
105
|
+
z:
|
106
|
+
- :dash
|
107
|
+
- :dash
|
108
|
+
- :dot
|
109
|
+
- :dot
|
110
|
+
'1':
|
111
|
+
- :dot
|
112
|
+
- :dash
|
113
|
+
- :dash
|
114
|
+
- :dash
|
115
|
+
- :dash
|
116
|
+
'2':
|
117
|
+
- :dot
|
118
|
+
- :dot
|
119
|
+
- :dash
|
120
|
+
- :dash
|
121
|
+
- :dash
|
122
|
+
'3':
|
123
|
+
- :dot
|
124
|
+
- :dot
|
125
|
+
- :dot
|
126
|
+
- :dash
|
127
|
+
- :dash
|
128
|
+
'4':
|
129
|
+
- :dot
|
130
|
+
- :dot
|
131
|
+
- :dot
|
132
|
+
- :dot
|
133
|
+
- :dash
|
134
|
+
'5':
|
135
|
+
- :dot
|
136
|
+
- :dot
|
137
|
+
- :dot
|
138
|
+
- :dot
|
139
|
+
- :dot
|
140
|
+
'6':
|
141
|
+
- :dash
|
142
|
+
- :dot
|
143
|
+
- :dot
|
144
|
+
- :dot
|
145
|
+
- :dot
|
146
|
+
'7':
|
147
|
+
- :dash
|
148
|
+
- :dash
|
149
|
+
- :dot
|
150
|
+
- :dot
|
151
|
+
- :dot
|
152
|
+
'8':
|
153
|
+
- :dash
|
154
|
+
- :dash
|
155
|
+
- :dash
|
156
|
+
- :dot
|
157
|
+
- :dot
|
158
|
+
'9':
|
159
|
+
- :dash
|
160
|
+
- :dash
|
161
|
+
- :dash
|
162
|
+
- :dash
|
163
|
+
- :dot
|
164
|
+
'0':
|
165
|
+
- :dash
|
166
|
+
- :dash
|
167
|
+
- :dash
|
168
|
+
- :dash
|
169
|
+
- :dash
|
170
|
+
"+":
|
171
|
+
- :dot
|
172
|
+
- :dash
|
173
|
+
- :dot
|
174
|
+
- :dash
|
175
|
+
- :dot
|
176
|
+
".":
|
177
|
+
- :dot
|
178
|
+
- :dash
|
179
|
+
- :dot
|
180
|
+
- :dash
|
181
|
+
- :dot
|
182
|
+
- :dash
|
183
|
+
",":
|
184
|
+
- :dash
|
185
|
+
- :dash
|
186
|
+
- :dot
|
187
|
+
- :dot
|
188
|
+
- :dash
|
189
|
+
- :dash
|
190
|
+
"=":
|
191
|
+
- :dash
|
192
|
+
- :dot
|
193
|
+
- :dot
|
194
|
+
- :dot
|
195
|
+
- :dash
|
196
|
+
"!":
|
197
|
+
- :dot
|
198
|
+
- :dot
|
199
|
+
- :dash
|
200
|
+
- :dash
|
201
|
+
- :dot
|
202
|
+
"/":
|
203
|
+
- :dash
|
204
|
+
- :dot
|
205
|
+
- :dot
|
206
|
+
- :dash
|
207
|
+
- :dot
|
208
|
+
"?":
|
209
|
+
- :dot
|
210
|
+
- :dot
|
211
|
+
- :dash
|
212
|
+
- :dash
|
213
|
+
- :dot
|
214
|
+
- :dot
|
215
|
+
" ": []
|