Skip to content

Commit f9a5db9

Browse files
committed
add tests
1 parent c0a7055 commit f9a5db9

6 files changed

+77
-1
lines changed

json-waveform.gemspec

+1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ Gem::Specification.new do |s|
2222
s.executables << "json-waveform"
2323

2424
s.add_dependency "ruby-audio", "~> 1.6.0"
25+
s.add_development_dependency "minitest", "~> 4"
2526
end

makefile

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
.PHONY: console
1+
.PHONY: console test
2+
3+
test:
4+
ruby test/json_waveform_test.rb
25

36
console:
47
irb -I./lib -r json-waveform

test/fixtures/sample.peak.json

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[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.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.7,0.7,0.7,0.7,0.7,0.69,0.69,0.68,0.69,0.71,0.69,0.7,0.7,0.69,0.69,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.48,0.48,0.48,0.48,0.48,0.48,0.48,0.48,0.48,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0,0,0,0]

test/fixtures/sample.rms.json

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[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.01,0.01,0,0,0.01,0.45,0.45,0.48,0.52,0.52,0.48,0.45,0.47,0.52,0.52,0.47,0.45,0.49,0.52,0.51,0.46,0.45,0.48,0.52,0.5,0.46,0.44,0.48,0.52,0.5,0.45,0.44,0.48,0.51,0.49,0.45,0.44,0.48,0.51,0.49,0.44,0.44,0.48,0.51,0.48,0.44,0.44,0.48,0.5,0.48,0.43,0.44,0.48,0.5,0.47,0.43,0.44,0.48,0.5,0.46,0.42,0.44,0.48,0.49,0.46,0.42,0.44,0.48,0.49,0.45,0.42,0.44,0.48,0.48,0.44,0.41,0.44,0.48,0.48,0.44,0.41,0.44,0.47,0.47,0.43,0.41,0.44,0.47,0.47,0.43,0.4,0.44,0.47,0.46,0.42,0.4,0.44,0.47,0.46,0.41,0.4,0.43,0.46,0.45,0.41,0.4,0.43,0.46,0.44,0.4,0.4,0.43,0.46,0.44,0.4,0.39,0.43,0.45,0.43,0.39,0.39,0.43,0.45,0.43,0.39,0.39,0.43,0.45,0.42,0.38,0.39,0.43,0.44,0.41,0.38,0.39,0.43,0.44,0.41,0.37,0.39,0.43,0.43,0.4,0.37,0.39,0.42,0.43,0.39,0.37,0.39,0.42,0.42,0.39,0.36,0.39,0.42,0.42,0.38,0.36,0.39,0.42,0.41,0.38,0.36,0.38,0.41,0.41,0.37,0.35,0.38,0.41,0.4,0.36,0.35,0.38,0.41,0.39,0.36,0.35,0.38,0.4,0.39,0.35,0.35,0.38,0.4,0.38,0.35,0.35,0.38,0.4,0.38,0.34,0.34,0.38,0.39,0.37,0.34,0.34,0.38,0.39,0.36,0.33,0.34,0.37,0.38,0.36,0.33,0.34,0.37,0.38,0.35,0.32,0.34,0.37,0.37,0.35,0.32,0.34,0.37,0.37,0.34,0.32,0.33,0.36,0.36,0.33,0.31,0.33,0.36,0.36,0.33,0.31,0.33,0.36,0.35,0.32,0.31,0.33,0.36,0.35,0.32,0.3,0.33,0.35,0.34,0.31,0.3,0.33,0.35,0.34,0.31,0.3,0.33,0.35,0.33,0.3,0.3,0.32,0.34,0.33,0.3,0.29,0.32,0.34,0.32,0.29,0.29,0.32,0.33,0.31,0.29,0.29,0.32,0.33,0.31,0.28,0.29,0.32,0.32,0.3,0.28,0.29,0.31,0.32,0.3,0.27,0.28,0.31,0.31,0.29,0.27,0.28,0.31,0.31,0.28,0.27,0.28,0.31,0.31,0.28,0.26,0.28,0.3,0.3,0.27,0.26,0.28,0.3,0.29,0.27,0.26,0.28,0.3,0.29,0.26,0.25,0.27,0.29,0.28,0.26,0.25,0.27,0.29,0.28,0.25,0.25,0.27,0.29,0.27,0.25,0.24,0.27,0.28,0.27,0.24,0.24,0.26,0.28,0.26,0.24,0.24,0.26,0.27,0.26,0.23,0.24,0.26,0.27,0.25,0.23,0.24,0.26,0.26,0.25,0.23,0.23,0.25,0.26,0.24,0.22,0.23,0.25,0.26,0.24,0.22,0.23,0.25,0.25,0.23,0.21,0.23,0.25,0.25,0.22,0.21,0.22,0.24,0.24,0.22,0.21,0.22,0.24,0.24,0.21,0.2,0.22,0.24,0.23,0.21,0.2,0.22,0.23,0.23,0.2,0.2,0.22,0.23,0.22,0.2,0.2,0.21,0.23,0.22,0.2,0.19,0.21,0.22,0.21,0.19,0.19,0.21,0.22,0.21,0.19,0.19,0.21,0.21,0.2,0.18,0.19,0.2,0.21,0.2,0.18,0.18,0.2,0.21,0.19,0.18,0.18,0.2,0.2,0.19,0.17,0.18,0.2,0.2,0.18,0.17,0.18,0.19,0.19,0.18,0.16,0.17,0.19,0.19,0.17,0.16,0.17,0.19,0.18,0.17,0.16,0.17,0.18,0.18,0.16,0.16,0.17,0.18,0.17,0.16,0.15,0.16,0.18,0.17,0.15,0.15,0.16,0.17,0.17,0.15,0.15,0.16,0.17,0.16,0.15,0.14,0.16,0.17,0.16,0.14,0.14,0.16,0.16,0.15,0.14,0.14,0.15,0.16,0.15,0.13,0.14,0.15,0.15,0.14,0.13,0.13,0.15,0.15,0.14,0.13,0.13,0.14,0.15,0.14,0.12,0.13,0.14,0.14,0.13,0.12,0.13,0.14,0.14,0.13,0.12,0.13,0.14,0.13,0.12,0.12,0.12,0.13,0.13,0.12,0.11,0.12,0.13,0.13,0.12,0.11,0.12,0.13,0.12,0.11,0.11,0.12,0.12,0.12,0.11,0.11,0.11,0.12,0.12,0.1,0.1,0.11,0.12,0.11,0.1,0.1,0.11,0.11,0.11,0.1,0.1,0.11,0.11,0.1,0.09,0.1,0.1,0.11,0.1,0.09,0.09,0.1,0.1,0.1,0.09,0.09,0.1,0.1,0.09,0.09,0.09,0.1,0.1,0.09,0.08,0.09,0.09,0.09,0.09,0.08,0.08,0.09,0.09,0.08,0.08,0.08,0.09,0.09,0.08,0.08,0.08,0.09,0.08,0.08,0.07,0.08,0.08,0.08,0.07,0.07,0.08,0.08,0.08,0.07,0.07,0.07,0.08,0.08,0.07,0.07,0.07,0.08,0.07,0.07,0.06,0.07,0.07,0.07,0.06,0.06,0.07,0.07,0.07,0.06,0.06,0.06,0.07,0.06,0.06,0.06,0.06,0.06,0.06,0.05,0.06,0.06,0.06,0.06,0.05,0.05,0.06,0.06,0.05,0.05,0.05,0.06,0.06,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.04,0.05,0.05,0.05,0.04,0.04,0.04,0.05,0.05,0.04,0.04,0.04,0.05,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.04,0.04,0.04,0.03,0.03,0.04,0.04,0.04,0.03,0.03,0.03,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.02,0.02,0.03,0.03,0.03,0.02,0.02,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01,0.02,0.02,0.02,0.01,0.01,0.01,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0.01,0.01,0.01,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

test/fixtures/sample.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
foo bar baz

test/json_waveform_test.rb

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
require File.expand_path(File.join(File.dirname(__FILE__), "..", "lib", "json-waveform"))
2+
3+
require "minitest"
4+
require "minitest/autorun"
5+
require "fileutils"
6+
require 'json'
7+
8+
module Helpers
9+
def fixture(file)
10+
File.join(File.dirname(__FILE__), "fixtures", file)
11+
end
12+
end
13+
14+
class JsonWaveformTest < Minitest::Test
15+
include Helpers
16+
extend Helpers
17+
18+
def test_generates_waveform
19+
result = JsonWaveform.generate(fixture("sample.wav"))
20+
21+
assert_equal File.read(fixture("sample.peak.json")), JSON.dump(result)
22+
end
23+
24+
def test_generates_rms_waveform
25+
result = JsonWaveform.generate(fixture("sample.wav"), method: :rms)
26+
27+
assert_equal File.read(fixture("sample.rms.json")), JSON.dump(result)
28+
end
29+
30+
def test_changes_samples
31+
result = JsonWaveform.generate(fixture("sample.wav"), samples: 100)
32+
33+
assert_in_delta 100, result.size, 1
34+
end
35+
36+
def test_changes_amplitude
37+
result = JsonWaveform.generate(fixture("sample.wav"), amplitude: 100)
38+
39+
original = JSON.parse(File.read(fixture("sample.peak.json")))
40+
41+
assert_in_delta original.max * 100, result.max, 1
42+
end
43+
44+
def test_has_auto_width
45+
result = JsonWaveform.generate(fixture("sample.wav"), auto_samples: 10)
46+
47+
assert_equal 210, result.size
48+
end
49+
50+
def test_raises_error_if_not_given_readable_audio_source
51+
assert_raises JsonWaveform::RuntimeError do
52+
JsonWaveform.generate(fixture("sample.txt"))
53+
end
54+
end
55+
56+
def test_raises_exception_if_audio_not_exists
57+
assert_raises JsonWaveform::RuntimeError do
58+
JsonWaveform.generate(fixture("foo.wav"))
59+
end
60+
end
61+
62+
#def test_raises_deprecation_exception_if_ruby_audio_fails_to_read_source_file
63+
# begin
64+
# Waveform.generate(fixture("sample.txt"), output("shouldnt_exist.png"))
65+
# rescue Waveform::RuntimeError => e
66+
# assert_match /Hint: non-WAV files are no longer supported, convert to WAV first using something like ffmpeg/, e.message
67+
# end
68+
#end
69+
end

0 commit comments

Comments
 (0)