test/test_csv.rb in statsample-1.4.1 vs test/test_csv.rb in statsample-1.4.2
- old
+ new
@@ -1,81 +1,63 @@
-require(File.expand_path(File.dirname(__FILE__)+'/helpers_tests.rb'))
-class StatsampleCSVTestCase < MiniTest::Unit::TestCase
+require 'helpers_tests.rb'
+
+class StatsampleCSVTestCase < Minitest::Test
def setup
- @ds=Statsample::CSV.read(File.dirname(__FILE__)+"/fixtures/test_csv.csv")
+ @ds = Statsample::CSV.read('test/fixtures/test_csv.csv')
end
+
def test_read
- assert_equal(6,@ds.cases)
- assert_equal(%w{id name age city a1}, @ds.fields)
- id=[1,2,3,4,5,6].to_vector(:scale)
- name=["Alex","Claude","Peter","Franz","George","Fernand"].to_vector(:nominal)
- age=[20,23,25,27,5.5,nil].to_vector(:scale)
- city=["New York","London","London","Paris","Tome",nil].to_vector(:nominal)
- a1=["a,b","b,c","a",nil,"a,b,c",nil].to_vector(:nominal)
- ds_exp=Statsample::Dataset.new({'id'=>id,'name'=>name,'age'=>age,'city'=>city,'a1'=>a1}, %w{id name age city a1})
- ds_exp.fields.each{|f|
- assert_equal(ds_exp[f],@ds[f])
+ header = %w(id name age city a1)
+ data = {
+ 'id' => [1, 2, 3, 4, 5, 6].to_vector(:scale),
+ 'name' => %w(Alex Claude Peter Franz George Fernand).to_vector(:nominal),
+ 'age' => [20, 23, 25, 27, 5.5, nil].to_vector(:scale),
+ 'city' => ['New York', 'London', 'London', 'Paris', 'Tome', nil].to_vector(:nominal),
+ 'a1' => ['a,b', 'b,c', 'a', nil, 'a,b,c', nil].to_vector(:nominal)
}
- assert_equal(ds_exp,@ds)
+
+ ds_exp = Statsample::Dataset.new(data, header)
+
+ assert_equal(6, @ds.cases)
+ assert_equal(header, @ds.fields)
+
+ ds_exp.fields.each do |f|
+ assert_equal(ds_exp[f], @ds[f])
+ end
+
+ assert_equal(ds_exp, @ds)
end
+
def test_nil
- assert_equal(nil,@ds['age'][5])
+ assert_equal(nil, @ds['age'][5])
end
+
def test_repeated
- ds=Statsample::CSV.read(File.dirname(__FILE__)+"/fixtures/repeated_fields.csv")
- assert_equal(%w{id name_1 age_1 city a1 name_2 age_2},ds.fields)
- age=[3,4,5,6,nil,8].to_vector(:scale)
- assert_equal(age,ds['age_2'])
+ ds = Statsample::CSV.read('test/fixtures/repeated_fields.csv')
+ assert_equal(%w(id name_1 age_1 city a1 name_2 age_2), ds.fields)
+ age = [3, 4, 5, 6, nil, 8].to_vector(:scale)
+ assert_equal(age, ds['age_2'])
end
- def test_write
- filename=Tempfile.new("afile")
- # filename=Dir::tmpdir+"/test_write.csv"
- Statsample::CSV.write(@ds, filename.path)
- ds2=Statsample::CSV.read(filename.path)
- i=0
- ds2.each_array{|row|
- assert_equal(@ds.case_as_array(i),row)
- i+=1
- }
+
+ # Testing fix for SciRuby/statsample#19.
+ def test_accept_scientific_notation_as_float
+ ds = Statsample::CSV.read('test/fixtures/scientific_notation.csv')
+ assert_equal(%w(x y), ds.fields)
+ y = [9.629587310436753e+127, 1.9341543147883677e+129, 3.88485279048245e+130]
+ y.zip(ds['y']).each do |y_expected, y_ds|
+ assert_in_delta(y_expected, y_ds)
+ end
+
end
-end
-=begin
-class StatsampleCSVTestCase2 < MiniTest::Unit::TestCase
- def setup
- @ds=Statsample::CSV.read19(File.dirname(__FILE__)+"/fixtures/test_csv.csv")
- end
- def test_read
- assert_equal(6,@ds.cases)
- assert_equal(%w{id name age city a1}, @ds.fields)
- id=[1,2,3,4,5,6].to_vector(:scale)
- name=["Alex","Claude","Peter","Franz","George","Fernand"].to_vector(:nominal)
- age=[20,23,25,27,5.5,nil].to_vector(:scale)
- city=["New York","London","London","Paris","Tome",nil].to_vector(:nominal)
- a1=["a,b","b,c","a",nil,"a,b,c",nil].to_vector(:nominal)
- ds_exp=Statsample::Dataset.new({'id'=>id,'name'=>name,'age'=>age,'city'=>city,'a1'=>a1}, %w{id name age city a1})
- ds_exp.fields.each{|f|
- assert_equal(ds_exp[f],@ds[f])
- }
- assert_equal(ds_exp,@ds)
- end
- def test_nil
- assert_equal(nil,@ds['age'][5])
- end
- def test_repeated
- ds=Statsample::CSV.read19(File.dirname(__FILE__)+"/fixtures/repeated_fields.csv")
- assert_equal(%w{id name_1 age_1 city a1 name_2 age_2},ds.fields)
- age=[3,4,5,6,nil,8].to_vector(:scale)
- assert_equal(age,ds['age_2'])
- end
+
def test_write
- filename=Tempfile.new("afile")
- # filename=Dir::tmpdir+"/test_write.csv"
+ filename = Tempfile.new('afile')
Statsample::CSV.write(@ds, filename.path)
- ds2=Statsample::CSV.read19(filename.path)
- i=0
- ds2.each_array{|row|
- assert_equal(@ds.case_as_array(i),row)
- i+=1
- }
+ ds2 = Statsample::CSV.read(filename.path)
+ i = 0
+
+ ds2.each_array do |row|
+ assert_equal(@ds.case_as_array(i), row)
+ i += 1
+ end
end
end
-=end