test/test_csv.rb in statsample-1.2.0 vs test/test_csv.rb in statsample-1.3.0

- old
+ new

@@ -36,5 +36,45 @@ assert_equal(@ds.case_as_array(i),row) i+=1 } end end + +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" + 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 + } + end +end