From null+test-unit ¡÷ clear-code.com Tue Dec 11 03:00:48 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Tue, 11 Dec 2012 12:00:48 +0900 Subject: [test-unit-commit:00488] test-unit/test-unit [master] Match file name extension properly. Message-ID: <20121211033910.4BC819401AF@jenkins.clear-code.com> Kenji Okimoto 2012-12-11 12:00:48 +0900 (Tue, 11 Dec 2012) New Revision: 6d306fb0173c73b91d27ce309d771254936489cf https://github.com/test-unit/test-unit/commit/6d306fb0173c73b91d27ce309d771254936489cf Log: Match file name extension properly. Before: try to load the file as CSV load_data("foo.csvv") load_data("foo.csv.gz") After: raise ArgumentError load_data("foo.csvv") load_data("foo.csv.gz") Modified files: lib/test/unit/data.rb test/test-data.rb Modified: lib/test/unit/data.rb (+2 -2) =================================================================== --- lib/test/unit/data.rb 2012-11-29 16:19:07 +0900 (11d1bce) +++ lib/test/unit/data.rb 2012-12-11 12:00:48 +0900 (4862374) @@ -28,8 +28,8 @@ module Test # TODO: WRITE ME. def load_data(file_name) - case file_name - when /\.csv/i + case File.extname(file_name).downcase + when ".csv" loader = CSVDataLoader.new(self) loader.load(file_name) else Modified: test/test-data.rb (+9 -0) =================================================================== --- test/test-data.rb 2012-11-29 16:19:07 +0900 (eed580f) +++ test/test-data.rb 2012-12-11 12:00:48 +0900 (2e166e1) @@ -188,4 +188,13 @@ class TestData < Test::Unit::TestCase test.run(result) {} result end + + class TestLoadData < Test::Unit::TestCase + def test_load_data_with_invalid_csv_file_name + file_name = "hoge.csvv" + assert_raise(ArgumentError, "unsupported file format: <#{file_name}>") do + TestLoadData.load_data(file_name) + end + end + end end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Tue Dec 11 04:38:25 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Tue, 11 Dec 2012 13:38:25 +0900 Subject: [test-unit-commit:00489] test-unit/test-unit [master] Remove duplicated name Message-ID: <20121211043842.130899401AF@jenkins.clear-code.com> Kouhei Sutou 2012-12-11 13:38:25 +0900 (Tue, 11 Dec 2012) New Revision: fce25198aefe660448f8f2fb1123cbecb185ca46 https://github.com/test-unit/test-unit/commit/fce25198aefe660448f8f2fb1123cbecb185ca46 Log: Remove duplicated name Modified files: test/test-data.rb Modified: test/test-data.rb (+1 -1) =================================================================== --- test/test-data.rb 2012-12-11 12:00:48 +0900 (2e166e1) +++ test/test-data.rb 2012-12-11 13:38:25 +0900 (a9d250c) @@ -190,7 +190,7 @@ class TestData < Test::Unit::TestCase end class TestLoadData < Test::Unit::TestCase - def test_load_data_with_invalid_csv_file_name + def test_invalid_csv_file_name file_name = "hoge.csvv" assert_raise(ArgumentError, "unsupported file format: <#{file_name}>") do TestLoadData.load_data(file_name) -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Tue Dec 11 04:38:54 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Tue, 11 Dec 2012 13:38:54 +0900 Subject: [test-unit-commit:00490] test-unit/test-unit [master] Use self.class Message-ID: <20121211043905.5A3DC9401AF@jenkins.clear-code.com> Kouhei Sutou 2012-12-11 13:38:54 +0900 (Tue, 11 Dec 2012) New Revision: f7155d377692ca26cc275d7607b3492dda221012 https://github.com/test-unit/test-unit/commit/f7155d377692ca26cc275d7607b3492dda221012 Log: Use self.class Modified files: test/test-data.rb Modified: test/test-data.rb (+1 -1) =================================================================== --- test/test-data.rb 2012-12-11 13:38:25 +0900 (a9d250c) +++ test/test-data.rb 2012-12-11 13:38:54 +0900 (74dd97b) @@ -193,7 +193,7 @@ class TestData < Test::Unit::TestCase def test_invalid_csv_file_name file_name = "hoge.csvv" assert_raise(ArgumentError, "unsupported file format: <#{file_name}>") do - TestLoadData.load_data(file_name) + self.class.load_data(file_name) end end end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Tue Dec 11 04:39:58 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Tue, 11 Dec 2012 13:39:58 +0900 Subject: [test-unit-commit:00491] test-unit/test-unit [master] Name invalid data Message-ID: <20121211044012.D0DB79401AF@jenkins.clear-code.com> Kouhei Sutou 2012-12-11 13:39:58 +0900 (Tue, 11 Dec 2012) New Revision: 7959d3b40e81e8931d45d1407807f5609b6792c3 https://github.com/test-unit/test-unit/commit/7959d3b40e81e8931d45d1407807f5609b6792c3 Log: Name invalid data Modified files: test/test-data.rb Modified: test/test-data.rb (+2 -1) =================================================================== --- test/test-data.rb 2012-12-11 13:38:54 +0900 (74dd97b) +++ test/test-data.rb 2012-12-11 13:39:58 +0900 (418c9a2) @@ -191,7 +191,8 @@ class TestData < Test::Unit::TestCase class TestLoadData < Test::Unit::TestCase def test_invalid_csv_file_name - file_name = "hoge.csvv" + garbage = "X" + file_name = "hoge.csv#{garbage}" assert_raise(ArgumentError, "unsupported file format: <#{file_name}>") do self.class.load_data(file_name) end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Tue Dec 11 04:40:24 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Tue, 11 Dec 2012 13:40:24 +0900 Subject: [test-unit-commit:00492] test-unit/test-unit [master] Remove anonymous name Message-ID: <20121211044036.E0BE99401AF@jenkins.clear-code.com> Kouhei Sutou 2012-12-11 13:40:24 +0900 (Tue, 11 Dec 2012) New Revision: 18bbf45a9469296cf06ae7aa88ead3265006e80d https://github.com/test-unit/test-unit/commit/18bbf45a9469296cf06ae7aa88ead3265006e80d Log: Remove anonymous name Modified files: test/test-data.rb Modified: test/test-data.rb (+1 -1) =================================================================== --- test/test-data.rb 2012-12-11 13:39:58 +0900 (418c9a2) +++ test/test-data.rb 2012-12-11 13:40:24 +0900 (ee9dd64) @@ -192,7 +192,7 @@ class TestData < Test::Unit::TestCase class TestLoadData < Test::Unit::TestCase def test_invalid_csv_file_name garbage = "X" - file_name = "hoge.csv#{garbage}" + file_name = "data.csv#{garbage}" assert_raise(ArgumentError, "unsupported file format: <#{file_name}>") do self.class.load_data(file_name) end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Tue Dec 18 05:52:10 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Tue, 18 Dec 2012 14:52:10 +0900 Subject: [test-unit-commit:00493] test-unit/test-unit [master] Raise ArgumentError if no arguments are given. Message-ID: <20121218055417.A24859401AF@jenkins.clear-code.com> Kenji Okimoto 2012-12-18 14:52:10 +0900 (Tue, 18 Dec 2012) New Revision: 6b28f7bb420981bd2982f834f54972d6d15907dc https://github.com/test-unit/test-unit/commit/6b28f7bb420981bd2982f834f54972d6d15907dc Log: Raise ArgumentError if no arguments are given. Modified files: lib/test/unit/data.rb test/test-data.rb Modified: lib/test/unit/data.rb (+1 -0) =================================================================== --- lib/test/unit/data.rb 2012-12-11 13:40:24 +0900 (4862374) +++ lib/test/unit/data.rb 2012-12-18 14:52:10 +0900 (5869517) @@ -13,6 +13,7 @@ module Test n_arguments = arguments.size case n_arguments when 0 + raise ArgumentError, "no block is given" unless block_given? data_set = block when 1 data_set = arguments[0] Modified: test/test-data.rb (+6 -0) =================================================================== --- test/test-data.rb 2012-12-11 13:40:24 +0900 (ee9dd64) +++ test/test-data.rb 2012-12-18 14:52:10 +0900 (4790a79) @@ -83,6 +83,12 @@ class TestData < Test::Unit::TestCase TestCalc.testing = false end + def test_data_no_arguments_without_block + assert_raise(ArgumentError) do + self.class.data + end + end + data("data set", { :test_case => TestCalc::TestDataSet, -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 01:29:33 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Wed, 19 Dec 2012 10:29:33 +0900 Subject: [test-unit-commit:00494] test-unit/test-unit [master] doc: Add document for Test::Unit::TestCase::ClassMethods.data Message-ID: <20121219014703.AE7809402E8@jenkins.clear-code.com> Kenji Okimoto 2012-12-19 10:29:33 +0900 (Wed, 19 Dec 2012) New Revision: f066641808efd0ff6a92247d37fdb2c7b3c5c48f https://github.com/test-unit/test-unit/commit/f066641808efd0ff6a92247d37fdb2c7b3c5c48f Log: doc: Add document for Test::Unit::TestCase::ClassMethods.data Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+44 -1) =================================================================== --- lib/test/unit/data.rb 2012-12-18 14:52:10 +0900 (5869517) +++ lib/test/unit/data.rb 2012-12-19 10:29:33 +0900 (d27bb56) @@ -8,7 +8,50 @@ module Test end module ClassMethods - # TODO: WRITE ME. + # This method provides Data-Driven-Test functionality. + # + # Define test data in the test code. + # + # @overload data(label, data) + # @param [String] label specify test case name. + # @param data specify test data. + # + # @example data(label, data) + # data("empty string", [true, ""]) + # data("plain string", [false, "hello"]) + # def test_empty?(data) + # expected, target = data + # assert_equal(expected, target.empty?) + # end + # + # @overload data(hash) + # @param [Hash] hash specify test data as a Hash that + # key is test label and value is test data. + # + # @example data(hash) + # data("empty string" => [true, ""], + # "plain string" => [false, "hello"]) + # def test_empty?(data) + # expected, target = data + # assert_equal(expected, target.empty?) + # end + # + # @overload data(&block) + # @yieldreturn [Hash] return test data as a Hash that + # key is test label and value is test data. + # + # @example data(&block) + # data do + # data_set = {} + # data_set["empty string"] = [true, ""] + # data_set["plain string"] = [false, "hello"] + # data_set + # end + # def test_empty?(data) + # expected, target = data + # assert_equal(expected, target.empty?) + # end + # def data(*arguments, &block) n_arguments = arguments.size case n_arguments -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 01:53:42 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Wed, 19 Dec 2012 10:53:42 +0900 Subject: [test-unit-commit:00495] test-unit/test-unit [master] Convert "true"/"false" string as Ruby object Message-ID: <20121219020943.33DE69402E8@jenkins.clear-code.com> Kenji Okimoto 2012-12-19 10:53:42 +0900 (Wed, 19 Dec 2012) New Revision: d72d907be54a3087a5c14336dfb69608f8cfe1a6 https://github.com/test-unit/test-unit/commit/d72d907be54a3087a5c14336dfb69608f8cfe1a6 Log: Convert "true"/"false" string as Ruby object Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+2 -0) =================================================================== --- lib/test/unit/data.rb 2012-12-19 10:29:33 +0900 (d27bb56) +++ lib/test/unit/data.rb 2012-12-19 10:53:42 +0900 (a40c79a) @@ -109,6 +109,8 @@ module Test private def normalize_value(value) + return true if value == "true" + return false if value == "false" Integer(value) rescue ArgumentError begin -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 02:09:35 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Wed, 19 Dec 2012 11:09:35 +0900 Subject: [test-unit-commit:00496] test-unit/test-unit [master] Add test case for normalize_value Message-ID: <20121219020943.493E4940C97@jenkins.clear-code.com> Kenji Okimoto 2012-12-19 11:09:35 +0900 (Wed, 19 Dec 2012) New Revision: 4bd59b06c2d0deeeb3400ae4b3a6a17927d256fd https://github.com/test-unit/test-unit/commit/4bd59b06c2d0deeeb3400ae4b3a6a17927d256fd Log: Add test case for normalize_value Modified files: test/test-data.rb Modified: test/test-data.rb (+10 -0) =================================================================== --- test/test-data.rb 2012-12-19 10:53:42 +0900 (4790a79) +++ test/test-data.rb 2012-12-19 11:09:35 +0900 (73161ed) @@ -187,6 +187,16 @@ class TestData < Test::Unit::TestCase suite.tests.collect {|test| test.name}.sort) end + data("true" => {:expected => true , :target => "true"}, + "false" => {:expected => false , :target => "false"}, + "integer" => {:expected => 1 , :target => "1"}, + "float" => {:expected => 1.5 , :target => "1.5"}, + "string" => {:expected => "hello" , :target => "hello"},) + def test_normalize_value(data) + loader = Test::Unit::Data::ClassMethods::CSVDataLoader.new(self) + assert_equal(data[:expected], loader.__send__(:normalize_value, data[:target])) + end + def _run_test(test_case) result = Test::Unit::TestResult.new test = test_case.suite -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 02:10:49 2012 From: null+test-unit ¡÷ clear-code.com (Haruka Yoshihara) Date: Wed, 19 Dec 2012 11:10:49 +0900 Subject: [test-unit-commit:00497] test-unit/test-unit [master] doc: fix indent for YARD Message-ID: <20121219021159.A72099402E8@jenkins.clear-code.com> Haruka Yoshihara 2012-12-19 11:10:49 +0900 (Wed, 19 Dec 2012) New Revision: d5044dd9102832f5812dae637c835488fc72ce58 https://github.com/test-unit/test-unit/commit/d5044dd9102832f5812dae637c835488fc72ce58 Log: doc: fix indent for YARD Tags (such as @param) are indented more deeply than each associated @overload. e.g.) @overload ... @param ... @example ... Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+31 -31) =================================================================== --- lib/test/unit/data.rb 2012-12-19 11:09:35 +0900 (a40c79a) +++ lib/test/unit/data.rb 2012-12-19 11:10:49 +0900 (47b5413) @@ -13,44 +13,44 @@ module Test # Define test data in the test code. # # @overload data(label, data) - # @param [String] label specify test case name. - # @param data specify test data. + # @param [String] label specify test case name. + # @param data specify test data. # - # @example data(label, data) - # data("empty string", [true, ""]) - # data("plain string", [false, "hello"]) - # def test_empty?(data) - # expected, target = data - # assert_equal(expected, target.empty?) - # end + # @example data(label, data) + # data("empty string", [true, ""]) + # data("plain string", [false, "hello"]) + # def test_empty?(data) + # expected, target = data + # assert_equal(expected, target.empty?) + # end # # @overload data(hash) - # @param [Hash] hash specify test data as a Hash that - # key is test label and value is test data. + # @param [Hash] hash specify test data as a Hash that + # key is test label and value is test data. # - # @example data(hash) - # data("empty string" => [true, ""], - # "plain string" => [false, "hello"]) - # def test_empty?(data) - # expected, target = data - # assert_equal(expected, target.empty?) - # end + # @example data(hash) + # data("empty string" => [true, ""], + # "plain string" => [false, "hello"]) + # def test_empty?(data) + # expected, target = data + # assert_equal(expected, target.empty?) + # end # # @overload data(&block) - # @yieldreturn [Hash] return test data as a Hash that - # key is test label and value is test data. + # @yieldreturn [Hash] return test data as a Hash that + # key is test label and value is test data. # - # @example data(&block) - # data do - # data_set = {} - # data_set["empty string"] = [true, ""] - # data_set["plain string"] = [false, "hello"] - # data_set - # end - # def test_empty?(data) - # expected, target = data - # assert_equal(expected, target.empty?) - # end + # @example data(&block) + # data do + # data_set = {} + # data_set["empty string"] = [true, ""] + # data_set["plain string"] = [false, "hello"] + # data_set + # end + # def test_empty?(data) + # expected, target = data + # assert_equal(expected, target.empty?) + # end # def data(*arguments, &block) n_arguments = arguments.size -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 02:14:27 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Wed, 19 Dec 2012 11:14:27 +0900 Subject: [test-unit-commit:00498] test-unit/test-unit [master] Remove a needless space Message-ID: <20121219021440.73AB69402E8@jenkins.clear-code.com> Kouhei Sutou 2012-12-19 11:14:27 +0900 (Wed, 19 Dec 2012) New Revision: 9b03bf105b646369d208007924f3e02cb9d4f7bd https://github.com/test-unit/test-unit/commit/9b03bf105b646369d208007924f3e02cb9d4f7bd Log: Remove a needless space Modified files: test/test-data.rb Modified: test/test-data.rb (+5 -5) =================================================================== --- test/test-data.rb 2012-12-19 11:10:49 +0900 (73161ed) +++ test/test-data.rb 2012-12-19 11:14:27 +0900 (39a5731) @@ -187,11 +187,11 @@ class TestData < Test::Unit::TestCase suite.tests.collect {|test| test.name}.sort) end - data("true" => {:expected => true , :target => "true"}, - "false" => {:expected => false , :target => "false"}, - "integer" => {:expected => 1 , :target => "1"}, - "float" => {:expected => 1.5 , :target => "1.5"}, - "string" => {:expected => "hello" , :target => "hello"},) + data("true" => {:expected => true , :target => "true"}, + "false" => {:expected => false , :target => "false"}, + "integer" => {:expected => 1 , :target => "1"}, + "float" => {:expected => 1.5 , :target => "1.5"}, + "string" => {:expected => "hello", :target => "hello"},) def test_normalize_value(data) loader = Test::Unit::Data::ClassMethods::CSVDataLoader.new(self) assert_equal(data[:expected], loader.__send__(:normalize_value, data[:target])) -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 02:15:06 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Wed, 19 Dec 2012 11:15:06 +0900 Subject: [test-unit-commit:00499] test-unit/test-unit [master] Remove spaces before ", " Message-ID: <20121219021523.C194B9402E8@jenkins.clear-code.com> Kouhei Sutou 2012-12-19 11:15:06 +0900 (Wed, 19 Dec 2012) New Revision: 03a845d656435c203732030c9492e97d3b3845a1 https://github.com/test-unit/test-unit/commit/03a845d656435c203732030c9492e97d3b3845a1 Log: Remove spaces before "," M-x align-regexp RET :target RET Modified files: test/test-data.rb Modified: test/test-data.rb (+4 -4) =================================================================== --- test/test-data.rb 2012-12-19 11:14:27 +0900 (39a5731) +++ test/test-data.rb 2012-12-19 11:15:06 +0900 (f5a2374) @@ -187,10 +187,10 @@ class TestData < Test::Unit::TestCase suite.tests.collect {|test| test.name}.sort) end - data("true" => {:expected => true , :target => "true"}, - "false" => {:expected => false , :target => "false"}, - "integer" => {:expected => 1 , :target => "1"}, - "float" => {:expected => 1.5 , :target => "1.5"}, + data("true" => {:expected => true, :target => "true"}, + "false" => {:expected => false, :target => "false"}, + "integer" => {:expected => 1, :target => "1"}, + "float" => {:expected => 1.5, :target => "1.5"}, "string" => {:expected => "hello", :target => "hello"},) def test_normalize_value(data) loader = Test::Unit::Data::ClassMethods::CSVDataLoader.new(self) -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 02:16:16 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Wed, 19 Dec 2012 11:16:16 +0900 Subject: [test-unit-commit:00500] test-unit/test-unit [master] Reduce rescue scope Message-ID: <20121219021628.2E6709402E8@jenkins.clear-code.com> Kouhei Sutou 2012-12-19 11:16:16 +0900 (Wed, 19 Dec 2012) New Revision: 715633d096f080d0a770a2625845c873dace9a13 https://github.com/test-unit/test-unit/commit/715633d096f080d0a770a2625845c873dace9a13 Log: Reduce rescue scope Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+2 -0) =================================================================== --- lib/test/unit/data.rb 2012-12-19 11:15:06 +0900 (47b5413) +++ lib/test/unit/data.rb 2012-12-19 11:16:16 +0900 (e07c87a) @@ -111,6 +111,7 @@ module Test def normalize_value(value) return true if value == "true" return false if value == "false" + begin Integer(value) rescue ArgumentError begin @@ -119,6 +120,7 @@ module Test value end end + end end end end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 02:16:27 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Wed, 19 Dec 2012 11:16:27 +0900 Subject: [test-unit-commit:00501] test-unit/test-unit [master] Indent Message-ID: <20121219021640.2E89D9402E8@jenkins.clear-code.com> Kouhei Sutou 2012-12-19 11:16:27 +0900 (Wed, 19 Dec 2012) New Revision: c9549c890942003490dd88e8ac1a5b545c26e056 https://github.com/test-unit/test-unit/commit/c9549c890942003490dd88e8ac1a5b545c26e056 Log: Indent Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+6 -6) =================================================================== --- lib/test/unit/data.rb 2012-12-19 11:16:16 +0900 (e07c87a) +++ lib/test/unit/data.rb 2012-12-19 11:16:27 +0900 (a3c752b) @@ -111,16 +111,16 @@ module Test def normalize_value(value) return true if value == "true" return false if value == "false" - begin - Integer(value) - rescue ArgumentError begin - Float(value) + Integer(value) rescue ArgumentError - value + begin + Float(value) + rescue ArgumentError + value + end end end - end end end end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 02:22:21 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Wed, 19 Dec 2012 11:22:21 +0900 Subject: [test-unit-commit:00502] test-unit/test-unit [master] Name argument Message-ID: <20121219022235.113C79402E8@jenkins.clear-code.com> Kouhei Sutou 2012-12-19 11:22:21 +0900 (Wed, 19 Dec 2012) New Revision: 21b793039d31de296c722cd6f8ca42675f483772 https://github.com/test-unit/test-unit/commit/21b793039d31de296c722cd6f8ca42675f483772 Log: Name argument "hash" is data type information not what it is. Name should describe what it is. (This English may be broken English. :p) Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+4 -4) =================================================================== --- lib/test/unit/data.rb 2012-12-19 11:16:27 +0900 (a3c752b) +++ lib/test/unit/data.rb 2012-12-19 11:22:21 +0900 (f4a5046) @@ -24,11 +24,11 @@ module Test # assert_equal(expected, target.empty?) # end # - # @overload data(hash) - # @param [Hash] hash specify test data as a Hash that + # @overload data(data_set) + # @param [Hash] data_set specify test data as a Hash that # key is test label and value is test data. # - # @example data(hash) + # @example data(data_set) # data("empty string" => [true, ""], # "plain string" => [false, "hello"]) # def test_empty?(data) @@ -37,7 +37,7 @@ module Test # end # # @overload data(&block) - # @yieldreturn [Hash] return test data as a Hash that + # @yieldreturn [Hash] return test data set as a Hash that # key is test label and value is test data. # # @example data(&block) -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 02:23:25 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Wed, 19 Dec 2012 11:23:25 +0900 Subject: [test-unit-commit:00503] test-unit/test-unit [master] Remove a trailing , Message-ID: <20121219022337.715999402E8@jenkins.clear-code.com> Kouhei Sutou 2012-12-19 11:23:25 +0900 (Wed, 19 Dec 2012) New Revision: 94375ff76d3655d6feae0f3da8b97c7e22808954 https://github.com/test-unit/test-unit/commit/94375ff76d3655d6feae0f3da8b97c7e22808954 Log: Remove a trailing , Modified files: test/test-data.rb Modified: test/test-data.rb (+1 -1) =================================================================== --- test/test-data.rb 2012-12-19 11:22:21 +0900 (f5a2374) +++ test/test-data.rb 2012-12-19 11:23:25 +0900 (676757b) @@ -191,7 +191,7 @@ class TestData < Test::Unit::TestCase "false" => {:expected => false, :target => "false"}, "integer" => {:expected => 1, :target => "1"}, "float" => {:expected => 1.5, :target => "1.5"}, - "string" => {:expected => "hello", :target => "hello"},) + "string" => {:expected => "hello", :target => "hello"}) def test_normalize_value(data) loader = Test::Unit::Data::ClassMethods::CSVDataLoader.new(self) assert_equal(data[:expected], loader.__send__(:normalize_value, data[:target])) -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 02:46:20 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Wed, 19 Dec 2012 11:46:20 +0900 Subject: [test-unit-commit:00504] test-unit/test-unit [master] Add test for loading csv file with header Message-ID: <20121219024929.55280940C97@jenkins.clear-code.com> Kenji Okimoto 2012-12-19 11:46:20 +0900 (Wed, 19 Dec 2012) New Revision: 76bff45b19b7795a2fa5dcbf0b483d9e687693e3 https://github.com/test-unit/test-unit/commit/76bff45b19b7795a2fa5dcbf0b483d9e687693e3 Log: Add test for loading csv file with header Added files: test/fixtures/header.csv Modified files: test/test-data.rb Added: test/fixtures/header.csv (+3 -0) 100644 =================================================================== --- /dev/null +++ test/fixtures/header.csv 2012-12-19 11:46:20 +0900 (5173e49) @@ -0,0 +1,3 @@ +label,expected,target +empty string,true,"" +plain string,false,hello Modified: test/test-data.rb (+11 -0) =================================================================== --- test/test-data.rb 2012-12-19 11:19:08 +0900 (661e0ec) +++ test/test-data.rb 2012-12-19 11:46:20 +0900 (148a350) @@ -213,5 +213,16 @@ class TestData < Test::Unit::TestCase self.class.load_data(file_name) end end + + def test_csv_file_with_header + base_dir = File.dirname(__FILE__) + file_name = File.join(base_dir, "fixtures", "header.csv") + self.class.load_data(file_name) + assert_equal([ + {"empty string" => {"expected" => true, "target" => ""}}, + {"plain string" => {"expected" => false, "target" => "hello"}} + ], + self.class.current_attribute(:data)[:value]) + end end end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 02:19:08 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Wed, 19 Dec 2012 11:19:08 +0900 Subject: [test-unit-commit:00505] test-unit/test-unit [master] Align. Message-ID: <20121219024929.3E2269402E8@jenkins.clear-code.com> Kenji Okimoto 2012-12-19 11:19:08 +0900 (Wed, 19 Dec 2012) New Revision: d3a8c4c7c5bf061cd1099c509299e8746c1add1a https://github.com/test-unit/test-unit/commit/d3a8c4c7c5bf061cd1099c509299e8746c1add1a Log: Align. Modified files: test/test-data.rb Modified: test/test-data.rb (+9 -9) =================================================================== --- test/test-data.rb 2012-12-19 11:23:25 +0900 (676757b) +++ test/test-data.rb 2012-12-19 11:19:08 +0900 (661e0ec) @@ -152,10 +152,10 @@ class TestData < Test::Unit::TestCase assert_not_nil(data[:data_set]) end - data("data set" => TestCalc::TestDataSet, - "n-data" => TestCalc::TestNData, + data("data set" => TestCalc::TestDataSet, + "n-data" => TestCalc::TestNData, "dynamic-data-set" => TestCalc::TestDynamicDataSet, - "load-data-set" => TestCalc::TestLoadDataSet) + "load-data-set" => TestCalc::TestLoadDataSet) def test_suite(test_case) suite = test_case.suite assert_equal(["test_plus[positive negative](#{test_case.name})", @@ -163,20 +163,20 @@ class TestData < Test::Unit::TestCase suite.tests.collect {|test| test.name}.sort) end - data("data set" => TestCalc::TestDataSet, - "n-data" => TestCalc::TestNData, + data("data set" => TestCalc::TestDataSet, + "n-data" => TestCalc::TestNData, "dynamic-data-set" => TestCalc::TestDynamicDataSet, - "load-data-set" => TestCalc::TestLoadDataSet) + "load-data-set" => TestCalc::TestLoadDataSet) def test_run(test_case) result = _run_test(test_case) assert_equal("2 tests, 2 assertions, 0 failures, 0 errors, 0 pendings, " \ "0 omissions, 0 notifications", result.to_s) end - data("data set" => TestCalc::TestDataSet, - "n-data" => TestCalc::TestNData, + data("data set" => TestCalc::TestDataSet, + "n-data" => TestCalc::TestNData, "dynamic-data-set" => TestCalc::TestDynamicDataSet, - "load-data-set" => TestCalc::TestLoadDataSet) + "load-data-set" => TestCalc::TestLoadDataSet) def test_equal(test_case) suite = test_case.suite positive_positive_test = suite.tests.find do |test| -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 02:48:24 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Wed, 19 Dec 2012 11:48:24 +0900 Subject: [test-unit-commit:00506] test-unit/test-unit [master] Add test for loading csv file without header. Message-ID: <20121219024929.6B9C0940CA4@jenkins.clear-code.com> Kenji Okimoto 2012-12-19 11:48:24 +0900 (Wed, 19 Dec 2012) New Revision: b88a8942d6f5345b530c36572eace3581c27f150 https://github.com/test-unit/test-unit/commit/b88a8942d6f5345b530c36572eace3581c27f150 Log: Add test for loading csv file without header. Now, this test fails, I will fix this failure ASAP. Added files: test/fixtures/no-header.csv Modified files: test/test-data.rb Added: test/fixtures/no-header.csv (+3 -0) 100644 =================================================================== --- /dev/null +++ test/fixtures/no-header.csv 2012-12-19 11:48:24 +0900 (7057e80) @@ -0,0 +1,3 @@ +empty string,true,"" +plain string,false,hello +aplain string,false,hello Modified: test/test-data.rb (+11 -0) =================================================================== --- test/test-data.rb 2012-12-19 11:46:20 +0900 (148a350) +++ test/test-data.rb 2012-12-19 11:48:24 +0900 (1bf56ed) @@ -224,5 +224,16 @@ class TestData < Test::Unit::TestCase ], self.class.current_attribute(:data)[:value]) end + + def test_csv_file_without_header + base_dir = File.dirname(__FILE__) + file_name = File.join(base_dir, "fixtures", "no-header.csv") + self.class.load_data(file_name) + assert_equal([ + {"empty string" => [true, ""]}, + {"plain string" => [false, "hello"]} + ], + self.class.current_attribute(:data)[:value]) + end end end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 02:58:36 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Wed, 19 Dec 2012 11:58:36 +0900 Subject: [test-unit-commit:00507] test-unit/test-unit [master] Group CSV load tests Message-ID: <20121219025851.B720D9402E8@jenkins.clear-code.com> Kouhei Sutou 2012-12-19 11:58:36 +0900 (Wed, 19 Dec 2012) New Revision: fc67cfcb129d7252209048a865e5fb3e8a6ee8da https://github.com/test-unit/test-unit/commit/fc67cfcb129d7252209048a865e5fb3e8a6ee8da Log: Group CSV load tests Modified files: test/test-data.rb Modified: test/test-data.rb (+4 -2) =================================================================== --- test/test-data.rb 2012-12-19 11:48:24 +0900 (1bf56ed) +++ test/test-data.rb 2012-12-19 11:58:36 +0900 (6bbdbbe) @@ -214,7 +214,8 @@ class TestData < Test::Unit::TestCase end end - def test_csv_file_with_header + class TestCSV < self + def test_with_header base_dir = File.dirname(__FILE__) file_name = File.join(base_dir, "fixtures", "header.csv") self.class.load_data(file_name) @@ -225,7 +226,7 @@ class TestData < Test::Unit::TestCase self.class.current_attribute(:data)[:value]) end - def test_csv_file_without_header + def test_without_header base_dir = File.dirname(__FILE__) file_name = File.join(base_dir, "fixtures", "no-header.csv") self.class.load_data(file_name) @@ -235,5 +236,6 @@ class TestData < Test::Unit::TestCase ], self.class.current_attribute(:data)[:value]) end + end end end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 02:58:56 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Wed, 19 Dec 2012 11:58:56 +0900 Subject: [test-unit-commit:00508] test-unit/test-unit [master] Indent Message-ID: <20121219025907.22F3A9402E8@jenkins.clear-code.com> Kouhei Sutou 2012-12-19 11:58:56 +0900 (Wed, 19 Dec 2012) New Revision: 12838cd2a079e21f942639382309c7ff671f4410 https://github.com/test-unit/test-unit/commit/12838cd2a079e21f942639382309c7ff671f4410 Log: Indent Modified files: test/test-data.rb Modified: test/test-data.rb (+20 -20) =================================================================== --- test/test-data.rb 2012-12-19 11:58:36 +0900 (6bbdbbe) +++ test/test-data.rb 2012-12-19 11:58:56 +0900 (11e8143) @@ -215,27 +215,27 @@ class TestData < Test::Unit::TestCase end class TestCSV < self - def test_with_header - base_dir = File.dirname(__FILE__) - file_name = File.join(base_dir, "fixtures", "header.csv") - self.class.load_data(file_name) - assert_equal([ - {"empty string" => {"expected" => true, "target" => ""}}, - {"plain string" => {"expected" => false, "target" => "hello"}} - ], - self.class.current_attribute(:data)[:value]) - end + def test_with_header + base_dir = File.dirname(__FILE__) + file_name = File.join(base_dir, "fixtures", "header.csv") + self.class.load_data(file_name) + assert_equal([ + {"empty string" => {"expected" => true, "target" => ""}}, + {"plain string" => {"expected" => false, "target" => "hello"}} + ], + self.class.current_attribute(:data)[:value]) + end - def test_without_header - base_dir = File.dirname(__FILE__) - file_name = File.join(base_dir, "fixtures", "no-header.csv") - self.class.load_data(file_name) - assert_equal([ - {"empty string" => [true, ""]}, - {"plain string" => [false, "hello"]} - ], - self.class.current_attribute(:data)[:value]) - end + def test_without_header + base_dir = File.dirname(__FILE__) + file_name = File.join(base_dir, "fixtures", "no-header.csv") + self.class.load_data(file_name) + assert_equal([ + {"empty string" => [true, ""]}, + {"plain string" => [false, "hello"]} + ], + self.class.current_attribute(:data)[:value]) + end end end end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 03:00:18 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Wed, 19 Dec 2012 12:00:18 +0900 Subject: [test-unit-commit:00509] test-unit/test-unit [master] Fix too indent Message-ID: <20121219030031.5E40B9402E8@jenkins.clear-code.com> Kouhei Sutou 2012-12-19 12:00:18 +0900 (Wed, 19 Dec 2012) New Revision: 34c2a5017df74df3a1a92c93002b6cfdec065e69 https://github.com/test-unit/test-unit/commit/34c2a5017df74df3a1a92c93002b6cfdec065e69 Log: Fix too indent Modified files: test/test-data.rb Modified: test/test-data.rb (+2 -2) =================================================================== --- test/test-data.rb 2012-12-19 11:58:56 +0900 (11e8143) +++ test/test-data.rb 2012-12-19 12:00:18 +0900 (a0ab06d) @@ -220,8 +220,8 @@ class TestData < Test::Unit::TestCase file_name = File.join(base_dir, "fixtures", "header.csv") self.class.load_data(file_name) assert_equal([ - {"empty string" => {"expected" => true, "target" => ""}}, - {"plain string" => {"expected" => false, "target" => "hello"}} + {"empty string" => {"expected" => true, "target" => ""}}, + {"plain string" => {"expected" => false, "target" => "hello"}} ], self.class.current_attribute(:data)[:value]) end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 03:00:39 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Wed, 19 Dec 2012 12:00:39 +0900 Subject: [test-unit-commit:00510] test-unit/test-unit [master] Add missing indent Message-ID: <20121219030051.AF90F9402E8@jenkins.clear-code.com> Kouhei Sutou 2012-12-19 12:00:39 +0900 (Wed, 19 Dec 2012) New Revision: 3dbd6da4d144c1e3ff64a06aa618b196b3b9a8a9 https://github.com/test-unit/test-unit/commit/3dbd6da4d144c1e3ff64a06aa618b196b3b9a8a9 Log: Add missing indent Modified files: test/test-data.rb Modified: test/test-data.rb (+2 -2) =================================================================== --- test/test-data.rb 2012-12-19 12:00:18 +0900 (a0ab06d) +++ test/test-data.rb 2012-12-19 12:00:39 +0900 (3a2177c) @@ -231,8 +231,8 @@ class TestData < Test::Unit::TestCase file_name = File.join(base_dir, "fixtures", "no-header.csv") self.class.load_data(file_name) assert_equal([ - {"empty string" => [true, ""]}, - {"plain string" => [false, "hello"]} + {"empty string" => [true, ""]}, + {"plain string" => [false, "hello"]} ], self.class.current_attribute(:data)[:value]) end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 03:02:34 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Wed, 19 Dec 2012 12:02:34 +0900 Subject: [test-unit-commit:00511] test-unit/test-unit [master] Remove garbage line Message-ID: <20121219033022.6BF889402E8@jenkins.clear-code.com> Kenji Okimoto 2012-12-19 12:02:34 +0900 (Wed, 19 Dec 2012) New Revision: a784a5db12209dcdd038f085e6785b531332f54e https://github.com/test-unit/test-unit/commit/a784a5db12209dcdd038f085e6785b531332f54e Log: Remove garbage line Modified files: test/fixtures/no-header.csv Modified: test/fixtures/no-header.csv (+0 -1) =================================================================== --- test/fixtures/no-header.csv 2012-12-19 12:00:39 +0900 (7057e80) +++ test/fixtures/no-header.csv 2012-12-19 12:02:34 +0900 (a6d47d5) @@ -1,3 +1,2 @@ empty string,true,"" plain string,false,hello -aplain string,false,hello -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 03:26:47 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Wed, 19 Dec 2012 12:26:47 +0900 Subject: [test-unit-commit:00512] test-unit/test-unit [master] Clear current_attribute(:data) for each test case Message-ID: <20121219033022.8622A940C97@jenkins.clear-code.com> Kenji Okimoto 2012-12-19 12:26:47 +0900 (Wed, 19 Dec 2012) New Revision: be6192494c0c2d185b94d734c736a346a7b6b205 https://github.com/test-unit/test-unit/commit/be6192494c0c2d185b94d734c736a346a7b6b205 Log: Clear current_attribute(:data) for each test case Modified files: test/test-data.rb Modified: test/test-data.rb (+4 -0) =================================================================== --- test/test-data.rb 2012-12-19 12:02:34 +0900 (3a2177c) +++ test/test-data.rb 2012-12-19 12:26:47 +0900 (d3340af) @@ -215,6 +215,10 @@ class TestData < Test::Unit::TestCase end class TestCSV < self + def setup + self.class.current_attribute(:data).clear + end + def test_with_header base_dir = File.dirname(__FILE__) file_name = File.join(base_dir, "fixtures", "header.csv") -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 03:30:28 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Wed, 19 Dec 2012 12:30:28 +0900 Subject: [test-unit-commit:00513] test-unit/test-unit [master] Assume first column as label Message-ID: <20121219033022.9BB2E940CA4@jenkins.clear-code.com> Kenji Okimoto 2012-12-19 12:30:28 +0900 (Wed, 19 Dec 2012) New Revision: 4b348ea62f528a9fb093ea9f30f33d19fac4a43b https://github.com/test-unit/test-unit/commit/4b348ea62f528a9fb093ea9f30f33d19fac4a43b Log: Assume first column as label Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+16 -10) =================================================================== --- lib/test/unit/data.rb 2012-12-19 12:26:47 +0900 (f4a5046) +++ lib/test/unit/data.rb 2012-12-19 12:30:28 +0900 (275dccf) @@ -90,17 +90,23 @@ module Test require 'csv' header = nil CSV.foreach(file_name) do |row| - if header.nil? - header = row - next - end + header = row if header.nil? label = nil - data = {} - header.each_with_index do |key, i| - if key == "label" - label = row[i] - else - data[key] = normalize_value(row[i]) + + if header.first == "label" + next if header == row + data = {} + header.each_with_index do |key, i| + if key == "label" + label = row[i] + else + data[key] = normalize_value(row[i]) + end + end + else + label = row.shift + data = row.collect do |cell| + normalize_value(cell) end end @test_case.data(label, data) -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 04:18:27 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Wed, 19 Dec 2012 13:18:27 +0900 Subject: [test-unit-commit:00514] test-unit/test-unit [master] doc: Add about load_data Message-ID: <20121219042226.4D6149402E8@jenkins.clear-code.com> Kenji Okimoto 2012-12-19 13:18:27 +0900 (Wed, 19 Dec 2012) New Revision: c31cfdb4703a72b3b3099b47ee213ac36123d640 https://github.com/test-unit/test-unit/commit/c31cfdb4703a72b3b3099b47ee213ac36123d640 Log: doc: Add about load_data Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+17 -1) =================================================================== --- lib/test/unit/data.rb 2012-12-19 12:30:28 +0900 (275dccf) +++ lib/test/unit/data.rb 2012-12-19 13:18:27 +0900 (5195c76) @@ -70,7 +70,23 @@ module Test attribute(:data, current_data + [data_set]) end - # TODO: WRITE ME. + # This method provides Data-Driven-Test functionality. + # + # Load test data from the file. This is short hand to load + # test data from file. If you want to load complex file, you + # can use {#data} with block. + # + # @param [String] file_name full path to test data file. + # File format is automatically detected from filename extension. + # @raise [ArgumentError] if +file_name+ is not supported file format. + # @see CSVDataLoader + # + # @example Load data from CSV file + # load_data("/path/to/test-data.csv") + # def test_empty?(data) + # assert_equal(data["expected"], data["target"].empty?) + # end + # def load_data(file_name) case File.extname(file_name).downcase when ".csv" -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Wed Dec 19 04:18:55 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Wed, 19 Dec 2012 13:18:55 +0900 Subject: [test-unit-commit:00515] test-unit/test-unit [master] doc: Add about CSVDataLoader Message-ID: <20121219042226.63C4A940C97@jenkins.clear-code.com> Kenji Okimoto 2012-12-19 13:18:55 +0900 (Wed, 19 Dec 2012) New Revision: 7abd96c9ac4580d5fe9f9dca6d36816934cc6803 https://github.com/test-unit/test-unit/commit/7abd96c9ac4580d5fe9f9dca6d36816934cc6803 Log: doc: Add about CSVDataLoader Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+30 -0) =================================================================== --- lib/test/unit/data.rb 2012-12-19 13:18:27 +0900 (5195c76) +++ lib/test/unit/data.rb 2012-12-19 13:18:55 +0900 (3237ebb) @@ -97,11 +97,41 @@ module Test end end + # Load data from CSV file. + # + # There are 2 types of CSV file as following examples. + # First, there is a header on first row and it's first column is "label". + # Another, there is no header in the file. + # + # @example Load data from CSV file with header + # # test-data.csv: + # # label,expected,target + # # empty string,true,"" + # # plain string,false,hello + # # + # load_data("/path/to/test-data.csv") + # def test_empty?(data) + # assert_equal(data["expected"], data["target"].empty?) + # end + # + # @example Load data from CSV file without header + # # test-data-without-header.csv: + # # empty string,true,"" + # # plain string,false,hello + # # + # load_data("/path/to/test-data-without-header.csv") + # def test_empty?(data) + # expected, target = data + # assert_equal(expected, target.empty?) + # end + # class CSVDataLoader + # @api private def initialize(test_case) @test_case = test_case end + # @api private def load(file_name) require 'csv' header = nil -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Thu Dec 20 03:07:32 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Thu, 20 Dec 2012 12:07:32 +0900 Subject: [test-unit-commit:00516] test-unit/test-unit [master] Add Test::Unit::TestSuite#delete_tests Message-ID: <20121220030846.73945940CA4@jenkins.clear-code.com> Kenji Okimoto 2012-12-20 12:07:32 +0900 (Thu, 20 Dec 2012) New Revision: 8c22b8853942a87889fe11480b0bf0aa5734cd85 https://github.com/test-unit/test-unit/commit/8c22b8853942a87889fe11480b0bf0aa5734cd85 Log: Add Test::Unit::TestSuite#delete_tests see GitHub#46 Modified files: lib/test/unit/testsuite.rb test/test_testsuite.rb Modified: lib/test/unit/testsuite.rb (+4 -0) =================================================================== --- lib/test/unit/testsuite.rb 2012-12-20 11:42:44 +0900 (41025cf) +++ lib/test/unit/testsuite.rb 2012-12-20 12:07:32 +0900 (3142744) @@ -70,6 +70,10 @@ module Test @tests.delete(test) end + def delete_tests(tests) + @tests -= tests + end + # Retuns the rolled up number of tests in this suite; # i.e. if the suite contains other suites, it counts the # tests within those suites, not the suites themselves. Modified: test/test_testsuite.rb (+13 -0) =================================================================== --- test/test_testsuite.rb 2012-12-20 11:42:44 +0900 (e079f55) +++ test/test_testsuite.rb 2012-12-20 12:07:32 +0900 (5ccf741) @@ -43,6 +43,19 @@ module Test assert_equal(TestSuite.new << t2, s) end + def test_delete_tests + suite = TestSuite.new + test1 = self.class.new("test_delete_1") + suite << test1 + test2 = self.class.new("test_delete_2") + suite << test2 + test3 = self.class.new("test_add") + suite << test3 + suite.delete_tests([test1, test2]) + assert_equal(1, suite.size) + assert_equal(TestSuite.new << test3, suite) + end + def test_size suite = TestSuite.new suite2 = TestSuite.new -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Thu Dec 20 02:30:08 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Thu, 20 Dec 2012 11:30:08 +0900 Subject: [test-unit-commit:00517] test-unit/test-unit [master] Remove trailing white spaces Message-ID: <20121220030846.465CD94041D@jenkins.clear-code.com> Kenji Okimoto 2012-12-20 11:30:08 +0900 (Thu, 20 Dec 2012) New Revision: 61d9c964e2d100bf94eeb0d336875592947b7654 https://github.com/test-unit/test-unit/commit/61d9c964e2d100bf94eeb0d336875592947b7654 Log: Remove trailing white spaces Modified files: lib/test/unit/testsuite.rb Modified: lib/test/unit/testsuite.rb (+2 -2) =================================================================== --- lib/test/unit/testsuite.rb 2012-12-19 13:18:55 +0900 (b502aec) +++ lib/test/unit/testsuite.rb 2012-12-20 11:30:08 +0900 (41025cf) @@ -78,7 +78,7 @@ module Test @tests.each { |test| total_size += test.size } total_size end - + def empty? size.zero? end @@ -88,7 +88,7 @@ module Test def to_s @name end - + # It's handy to be able to compare TestSuite instances. def ==(other) return false unless(other.kind_of?(self.class)) -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Thu Dec 20 03:08:07 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Thu, 20 Dec 2012 12:08:07 +0900 Subject: [test-unit-commit:00518] test-unit/test-unit [master] Delete many tests faster. Message-ID: <20121220030846.8C03A940CB2@jenkins.clear-code.com> Kenji Okimoto 2012-12-20 12:08:07 +0900 (Thu, 20 Dec 2012) New Revision: 857a25c59ce29d2e8a3ba36deef0c92310b4088c https://github.com/test-unit/test-unit/commit/857a25c59ce29d2e8a3ba36deef0c92310b4088c Log: Delete many tests faster. close GitHub#46 Modified files: lib/test/unit/collector.rb Modified: lib/test/unit/collector.rb (+1 -1) =================================================================== --- lib/test/unit/collector.rb 2012-12-20 12:07:32 +0900 (95ee942) +++ lib/test/unit/collector.rb 2012-12-20 12:08:07 +0900 (c3d9760) @@ -18,7 +18,7 @@ module Test to_delete = suite.tests.find_all do |test| test.is_a?(TestCase) and !include?(test) end - to_delete.each {|t| suite.delete(t)} + suite.delete_tests(to_delete) destination << suite unless suite.empty? end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Thu Dec 20 02:42:44 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Thu, 20 Dec 2012 11:42:44 +0900 Subject: [test-unit-commit:00519] test-unit/test-unit [master] Remove trailing white spaces Message-ID: <20121220030846.5C98E940C97@jenkins.clear-code.com> Kenji Okimoto 2012-12-20 11:42:44 +0900 (Thu, 20 Dec 2012) New Revision: d99237a8da392dd4345dfd88ff85c3cbb4ab705d https://github.com/test-unit/test-unit/commit/d99237a8da392dd4345dfd88ff85c3cbb4ab705d Log: Remove trailing white spaces Modified files: test/test_testsuite.rb Modified: test/test_testsuite.rb (+8 -8) =================================================================== --- test/test_testsuite.rb 2012-12-20 11:30:08 +0900 (9af0a98) +++ test/test_testsuite.rb 2012-12-20 11:42:44 +0900 (e079f55) @@ -51,7 +51,7 @@ module Test suite << self.class.new("test_size") assert_equal(2, suite.size, "The count should be correct") end - + def test_run progress = [] suite = @testcase1.suite @@ -89,34 +89,34 @@ module Test assert_equal(28, progress.size, "Should have had the correct number of progress calls") end - + def test_empty? assert(TestSuite.new.empty?, "A new test suite should be empty?") assert(!@testcase2.suite.empty?, "A test suite with tests should not be empty") end - + def test_equality suite1 = TestSuite.new suite2 = TestSuite.new assert_equal(suite1, suite2) assert_equal(suite2, suite1) - + suite1 = TestSuite.new('name') assert_not_equal(suite1, suite2) assert_not_equal(suite2, suite1) - + suite2 = TestSuite.new('name') assert_equal(suite1, suite2) assert_equal(suite2, suite1) - + suite1 << 'test' assert_not_equal(suite1, suite2) assert_not_equal(suite2, suite1) - + suite2 << 'test' assert_equal(suite1, suite2) assert_equal(suite2, suite1) - + suite2 = Object.new class << suite2 def name -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Thu Dec 20 04:31:59 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Thu, 20 Dec 2012 13:31:59 +0900 Subject: [test-unit-commit:00520] test-unit/test-unit [master] Add workaround for Encoding.compatible? on JRuby 1.7.1 Message-ID: <20121220043211.D6D3C94041D@jenkins.clear-code.com> Kouhei Sutou 2012-12-20 13:31:59 +0900 (Thu, 20 Dec 2012) New Revision: 51a6d189dfeb06734607afa630ccc6ee31d5324e https://github.com/test-unit/test-unit/commit/51a6d189dfeb06734607afa630ccc6ee31d5324e Log: Add workaround for Encoding.compatible? on JRuby 1.7.1 The JRuby's problem will be fixed because a pull request has been sent: https://github.com/jruby/jruby/pull/457 Modified files: lib/test/unit/assertions.rb Modified: lib/test/unit/assertions.rb (+6 -1) =================================================================== --- lib/test/unit/assertions.rb 2012-12-20 12:08:07 +0900 (fb38db7) +++ lib/test/unit/assertions.rb 2012-12-20 13:31:59 +0900 (d14b900) @@ -1838,7 +1838,12 @@ EOT private if Object.const_defined?(:Encoding) def encoding_safe_concat(buffer, parameter) - if Encoding.compatible?(buffer.encoding, parameter.encoding) + # XXX: JRuby 1.7.1 doesn't support Encoding object for + # Encoding.compatible. So we need to use Encoding#name. :< + # A pull request that solves this issue has been sent to JRuby: + # https://github.com/jruby/jruby/pull/457 + if Encoding.compatible?(buffer.encoding.name, + parameter.encoding.name) buffer << parameter else buffer << parameter.dup.force_encoding(buffer.encoding) -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Thu Dec 20 04:39:49 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Thu, 20 Dec 2012 13:39:49 +0900 Subject: [test-unit-commit:00521] test-unit/test-unit [master] Support tag inspection on JRuby Message-ID: <20121220044003.1E3A594041D@jenkins.clear-code.com> Kouhei Sutou 2012-12-20 13:39:49 +0900 (Thu, 20 Dec 2012) New Revision: 8b6d575d710ebebc2f8f4d5c3f432deeab5a66ec https://github.com/test-unit/test-unit/commit/8b6d575d710ebebc2f8f4d5c3f432deeab5a66ec Log: Support tag inspection on JRuby Modified files: test/test-assertions.rb test/testunit-test-util.rb Modified: test/test-assertions.rb (+6 -0) =================================================================== --- test/test-assertions.rb 2012-12-20 13:31:59 +0900 (4324331) +++ test/test-assertions.rb 2012-12-20 13:39:49 +0900 (03ffd6e) @@ -10,6 +10,8 @@ require 'test/unit' module Test module Unit module AssertionCheckable + include TestUnitTestUtil + private def check(value, message="") add_assertion @@ -100,6 +102,9 @@ module Test end def inspect_tag(tag) + if jruby? + "`#{tag}'".inspect + else begin throw tag rescue NameError @@ -107,6 +112,7 @@ module Test rescue ArgumentError tag.inspect end + end end def add_failure(message, location=caller, options=nil) Modified: test/testunit-test-util.rb (+5 -1) =================================================================== --- test/testunit-test-util.rb 2012-12-20 13:31:59 +0900 (ba24610) +++ test/testunit-test-util.rb 2012-12-20 13:39:49 +0900 (991ce5b) @@ -1,7 +1,11 @@ module TestUnitTestUtil private + def jruby? + RUBY_PLATFORM == "java" + end + def jruby_only_test - if RUBY_PLATFORM == "java" + if jruby? require "java" else omit("test for JRuby") -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Thu Dec 20 04:40:00 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Thu, 20 Dec 2012 13:40:00 +0900 Subject: [test-unit-commit:00522] test-unit/test-unit [master] Indent Message-ID: <20121220044011.5866C94041D@jenkins.clear-code.com> Kouhei Sutou 2012-12-20 13:40:00 +0900 (Thu, 20 Dec 2012) New Revision: af1118eb9bd754cb0f4d46cd7556ada45ef2914c https://github.com/test-unit/test-unit/commit/af1118eb9bd754cb0f4d46cd7556ada45ef2914c Log: Indent Modified files: test/test-assertions.rb Modified: test/test-assertions.rb (+7 -7) =================================================================== --- test/test-assertions.rb 2012-12-20 13:39:49 +0900 (03ffd6e) +++ test/test-assertions.rb 2012-12-20 13:40:00 +0900 (b1d1e28) @@ -105,13 +105,13 @@ module Test if jruby? "`#{tag}'".inspect else - begin - throw tag - rescue NameError - tag.to_s.inspect - rescue ArgumentError - tag.inspect - end + begin + throw tag + rescue NameError + tag.to_s.inspect + rescue ArgumentError + tag.inspect + end end end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Thu Dec 20 04:41:37 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Thu, 20 Dec 2012 13:41:37 +0900 Subject: [test-unit-commit:00523] test-unit/test-unit [master] travis: Fix notifications recipients Message-ID: <20121220044228.2D5F894041D@jenkins.clear-code.com> Kenji Okimoto 2012-12-20 13:41:37 +0900 (Thu, 20 Dec 2012) New Revision: 255d81c963ecfa69183e3d225d66228b46a5ce00 https://github.com/test-unit/test-unit/commit/255d81c963ecfa69183e3d225d66228b46a5ce00 Log: travis: Fix notifications recipients Modified files: .travis.yml Modified: .travis.yml (+1 -1) =================================================================== --- .travis.yml 2012-12-20 13:40:00 +0900 (941e29e) +++ .travis.yml 2012-12-20 13:41:37 +0900 (c79c5d8) @@ -8,4 +8,4 @@ rvm: - ruby-head notifications: recipients: - - kou ¡÷ clear-code.com + - travis ¡÷ clear-code.com -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Thu Dec 20 04:47:15 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Thu, 20 Dec 2012 13:47:15 +0900 Subject: [test-unit-commit:00524] test-unit/test-unit [master] Revert "Add workaround for Encoding.compatible? on JRuby 1.7.1" Message-ID: <20121220044733.1133194041D@jenkins.clear-code.com> Kouhei Sutou 2012-12-20 13:47:15 +0900 (Thu, 20 Dec 2012) New Revision: 577fa36358f547777f5ce086e3b4c1900836b3fb https://github.com/test-unit/test-unit/commit/577fa36358f547777f5ce086e3b4c1900836b3fb Log: Revert "Add workaround for Encoding.compatible? on JRuby 1.7.1" This reverts commit 51a6d189dfeb06734607afa630ccc6ee31d5324e. Modified files: lib/test/unit/assertions.rb Modified: lib/test/unit/assertions.rb (+1 -6) =================================================================== --- lib/test/unit/assertions.rb 2012-12-20 13:41:37 +0900 (d14b900) +++ lib/test/unit/assertions.rb 2012-12-20 13:47:15 +0900 (fb38db7) @@ -1838,12 +1838,7 @@ EOT private if Object.const_defined?(:Encoding) def encoding_safe_concat(buffer, parameter) - # XXX: JRuby 1.7.1 doesn't support Encoding object for - # Encoding.compatible. So we need to use Encoding#name. :< - # A pull request that solves this issue has been sent to JRuby: - # https://github.com/jruby/jruby/pull/457 - if Encoding.compatible?(buffer.encoding.name, - parameter.encoding.name) + if Encoding.compatible?(buffer.encoding, parameter.encoding) buffer << parameter else buffer << parameter.dup.force_encoding(buffer.encoding) -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Thu Dec 20 04:48:06 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Thu, 20 Dec 2012 13:48:06 +0900 Subject: [test-unit-commit:00525] test-unit/test-unit [master] Use String itself instead of Encoding Message-ID: <20121220044816.CF9CF94041D@jenkins.clear-code.com> Kouhei Sutou 2012-12-20 13:48:06 +0900 (Thu, 20 Dec 2012) New Revision: 39c4bb01d5413be4b49457808a0c3ec6daf1aada https://github.com/test-unit/test-unit/commit/39c4bb01d5413be4b49457808a0c3ec6daf1aada Log: Use String itself instead of Encoding Modified files: lib/test/unit/assertions.rb Modified: lib/test/unit/assertions.rb (+1 -1) =================================================================== --- lib/test/unit/assertions.rb 2012-12-20 13:47:15 +0900 (fb38db7) +++ lib/test/unit/assertions.rb 2012-12-20 13:48:06 +0900 (fb8cdd2) @@ -1838,7 +1838,7 @@ EOT private if Object.const_defined?(:Encoding) def encoding_safe_concat(buffer, parameter) - if Encoding.compatible?(buffer.encoding, parameter.encoding) + if Encoding.compatible?(buffer, parameter) buffer << parameter else buffer << parameter.dup.force_encoding(buffer.encoding) -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 00:35:25 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 09:35:25 +0900 Subject: [test-unit-commit:00527] test-unit/test-unit [master] Change class name. Message-ID: <20121221005811.0BE7C940422@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 09:35:25 +0900 (Fri, 21 Dec 2012) New Revision: ab44e8f83610a9f17a71b07d5d5c11afa03bb3b7 https://github.com/test-unit/test-unit/commit/ab44e8f83610a9f17a71b07d5d5c11afa03bb3b7 Log: Change class name. Test::Unit::Data::ClassMethods::CSVDataLoader -> Test::Unit::Data::ClassMethods::Loader Modified files: lib/test/unit/data.rb test/test-data.rb Modified: lib/test/unit/data.rb (+2 -2) =================================================================== --- lib/test/unit/data.rb 2012-12-20 13:48:06 +0900 (3237ebb) +++ lib/test/unit/data.rb 2012-12-21 09:35:25 +0900 (24f6c72) @@ -90,7 +90,7 @@ module Test def load_data(file_name) case File.extname(file_name).downcase when ".csv" - loader = CSVDataLoader.new(self) + loader = Loader.new(self) loader.load(file_name) else raise ArgumentError, "unsupported file format: <#{file_name}>" @@ -125,7 +125,7 @@ module Test # assert_equal(expected, target.empty?) # end # - class CSVDataLoader + class Loader # @api private def initialize(test_case) @test_case = test_case Modified: test/test-data.rb (+1 -1) =================================================================== --- test/test-data.rb 2012-12-20 13:48:06 +0900 (d3340af) +++ test/test-data.rb 2012-12-21 09:35:25 +0900 (5045b89) @@ -193,7 +193,7 @@ class TestData < Test::Unit::TestCase "float" => {:expected => 1.5, :target => "1.5"}, "string" => {:expected => "hello", :target => "hello"}) def test_normalize_value(data) - loader = Test::Unit::Data::ClassMethods::CSVDataLoader.new(self) + loader = Test::Unit::Data::ClassMethods::Loader.new(self) assert_equal(data[:expected], loader.__send__(:normalize_value, data[:target])) end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 00:38:38 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 09:38:38 +0900 Subject: [test-unit-commit:00526] test-unit/test-unit [master] Rename method. Message-ID: <20121221005811.22A68940C97@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 09:38:38 +0900 (Fri, 21 Dec 2012) New Revision: ada7b20158cf0c7bd2395a092575d45d423d983a https://github.com/test-unit/test-unit/commit/ada7b20158cf0c7bd2395a092575d45d423d983a Log: Rename method. Test::Unit::Data::ClassMethods::Loader#load -> Test::Unit::Data::ClassMethods::Loader#load_csv Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+5 -0) =================================================================== --- lib/test/unit/data.rb 2012-12-21 09:35:25 +0900 (24f6c72) +++ lib/test/unit/data.rb 2012-12-21 09:38:38 +0900 (42e9109) @@ -133,6 +133,11 @@ module Test # @api private def load(file_name) + load_csv(file_name) + end + + # @api private + def load_csv(file_name) require 'csv' header = nil CSV.foreach(file_name) do |row| -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 00:55:53 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 09:55:53 +0900 Subject: [test-unit-commit:00528] test-unit/test-unit [master] Fix @see Message-ID: <20121221005811.677CB940CB4@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 09:55:53 +0900 (Fri, 21 Dec 2012) New Revision: 6445fdcf767e060b9d33837929a40d16943b8eb1 https://github.com/test-unit/test-unit/commit/6445fdcf767e060b9d33837929a40d16943b8eb1 Log: Fix @see Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+1 -1) =================================================================== --- lib/test/unit/data.rb 2012-12-21 09:52:31 +0900 (009e22a) +++ lib/test/unit/data.rb 2012-12-21 09:55:53 +0900 (bbf0316) @@ -79,7 +79,7 @@ module Test # @param [String] file_name full path to test data file. # File format is automatically detected from filename extension. # @raise [ArgumentError] if +file_name+ is not supported file format. - # @see CSVDataLoader + # @see Loader#load # # @example Load data from CSV file # load_data("/path/to/test-data.csv") -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 00:52:31 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 09:52:31 +0900 Subject: [test-unit-commit:00529] test-unit/test-unit [master] Move document Message-ID: <20121221005811.4F216940CB2@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 09:52:31 +0900 (Fri, 21 Dec 2012) New Revision: adeba27ab7033cf7b6dd7f33718b4859328a5981 https://github.com/test-unit/test-unit/commit/adeba27ab7033cf7b6dd7f33718b4859328a5981 Log: Move document Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+28 -28) =================================================================== --- lib/test/unit/data.rb 2012-12-21 09:43:50 +0900 (48c9a39) +++ lib/test/unit/data.rb 2012-12-21 09:52:31 +0900 (009e22a) @@ -92,34 +92,6 @@ module Test loader.load(file_name) end - # Load data from CSV file. - # - # There are 2 types of CSV file as following examples. - # First, there is a header on first row and it's first column is "label". - # Another, there is no header in the file. - # - # @example Load data from CSV file with header - # # test-data.csv: - # # label,expected,target - # # empty string,true,"" - # # plain string,false,hello - # # - # load_data("/path/to/test-data.csv") - # def test_empty?(data) - # assert_equal(data["expected"], data["target"].empty?) - # end - # - # @example Load data from CSV file without header - # # test-data-without-header.csv: - # # empty string,true,"" - # # plain string,false,hello - # # - # load_data("/path/to/test-data-without-header.csv") - # def test_empty?(data) - # expected, target = data - # assert_equal(expected, target.empty?) - # end - # class Loader # @api private def initialize(test_case) @@ -136,6 +108,34 @@ module Test end end + # Load data from CSV file. + # + # There are 2 types of CSV file as following examples. + # First, there is a header on first row and it's first column is "label". + # Another, there is no header in the file. + # + # @example Load data from CSV file with header + # # test-data.csv: + # # label,expected,target + # # empty string,true,"" + # # plain string,false,hello + # # + # load_data("/path/to/test-data.csv") + # def test_empty?(data) + # assert_equal(data["expected"], data["target"].empty?) + # end + # + # @example Load data from CSV file without header + # # test-data-without-header.csv: + # # empty string,true,"" + # # plain string,false,hello + # # + # load_data("/path/to/test-data-without-header.csv") + # def test_empty?(data) + # expected, target = data + # assert_equal(expected, target.empty?) + # end + # # @api private def load_csv(file_name) require 'csv' -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 00:43:50 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 09:43:50 +0900 Subject: [test-unit-commit:00530] test-unit/test-unit [master] Move code to check filename extension. Message-ID: <20121221005811.38052940CA4@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 09:43:50 +0900 (Fri, 21 Dec 2012) New Revision: 89b5eac05ec8c7683f2828c42be8bb93170cf40b https://github.com/test-unit/test-unit/commit/89b5eac05ec8c7683f2828c42be8bb93170cf40b Log: Move code to check filename extension. Test::Unit::Data::ClassMethods#load_data just calls Test::Unit::Data::ClassMethods::Loader#load. Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+8 -8) =================================================================== --- lib/test/unit/data.rb 2012-12-21 09:38:38 +0900 (42e9109) +++ lib/test/unit/data.rb 2012-12-21 09:43:50 +0900 (48c9a39) @@ -88,13 +88,8 @@ module Test # end # def load_data(file_name) - case File.extname(file_name).downcase - when ".csv" - loader = Loader.new(self) - loader.load(file_name) - else - raise ArgumentError, "unsupported file format: <#{file_name}>" - end + loader = Loader.new(self) + loader.load(file_name) end # Load data from CSV file. @@ -133,7 +128,12 @@ module Test # @api private def load(file_name) - load_csv(file_name) + case File.extname(file_name).downcase + when ".csv" + load_csv(file_name) + else + raise ArgumentError, "unsupported file format: <#{file_name}>" + end end # @api private -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 00:57:33 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 09:57:33 +0900 Subject: [test-unit-commit:00531] test-unit/test-unit [master] Add document about Test::Unit::Data::ClassMethods::Loader#load Message-ID: <20121221005811.7C6BD940CB6@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 09:57:33 +0900 (Fri, 21 Dec 2012) New Revision: ee4655c5105238e52c438b3b99ac71ee952a3ee9 https://github.com/test-unit/test-unit/commit/ee4655c5105238e52c438b3b99ac71ee952a3ee9 Log: Add document about Test::Unit::Data::ClassMethods::Loader#load Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+6 -0) =================================================================== --- lib/test/unit/data.rb 2012-12-21 09:55:53 +0900 (bbf0316) +++ lib/test/unit/data.rb 2012-12-21 09:57:33 +0900 (fb48c8f) @@ -98,6 +98,12 @@ module Test @test_case = test_case end + # Load data from file. + # + # @param [String] file_name full path to test data file. + # File format is automatically detected from filename extension. + # @raise [ArgumentError] if +file_name+ is not supported file format. + # @see #load_csv # @api private def load(file_name) case File.extname(file_name).downcase -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 01:16:08 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Fri, 21 Dec 2012 10:16:08 +0900 Subject: [test-unit-commit:00532] test-unit/test-unit [master] Group a header test Message-ID: <20121221011626.D645F940422@jenkins.clear-code.com> Kouhei Sutou 2012-12-21 10:16:08 +0900 (Fri, 21 Dec 2012) New Revision: 3caabdefc9f9f95ddba89966809cfc6b13a4332e https://github.com/test-unit/test-unit/commit/3caabdefc9f9f95ddba89966809cfc6b13a4332e Log: Group a header test Modified files: test/test-data.rb Modified: test/test-data.rb (+3 -1) =================================================================== --- test/test-data.rb 2012-12-21 09:57:33 +0900 (5045b89) +++ test/test-data.rb 2012-12-21 10:16:08 +0900 (212b35e) @@ -219,7 +219,8 @@ class TestData < Test::Unit::TestCase self.class.current_attribute(:data).clear end - def test_with_header + class TestHeader < self + def test_normal base_dir = File.dirname(__FILE__) file_name = File.join(base_dir, "fixtures", "header.csv") self.class.load_data(file_name) @@ -229,6 +230,7 @@ class TestData < Test::Unit::TestCase ], self.class.current_attribute(:data)[:value]) end + end def test_without_header base_dir = File.dirname(__FILE__) -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 01:16:23 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Fri, 21 Dec 2012 10:16:23 +0900 Subject: [test-unit-commit:00533] test-unit/test-unit [master] Indent Message-ID: <20121221011635.629FE940422@jenkins.clear-code.com> Kouhei Sutou 2012-12-21 10:16:23 +0900 (Fri, 21 Dec 2012) New Revision: a34da05ab7b6b1fe4cae037a6de92052269a3865 https://github.com/test-unit/test-unit/commit/a34da05ab7b6b1fe4cae037a6de92052269a3865 Log: Indent Modified files: test/test-data.rb Modified: test/test-data.rb (+10 -10) =================================================================== --- test/test-data.rb 2012-12-21 10:16:08 +0900 (212b35e) +++ test/test-data.rb 2012-12-21 10:16:23 +0900 (b654bd3) @@ -220,16 +220,16 @@ class TestData < Test::Unit::TestCase end class TestHeader < self - def test_normal - base_dir = File.dirname(__FILE__) - file_name = File.join(base_dir, "fixtures", "header.csv") - self.class.load_data(file_name) - assert_equal([ - {"empty string" => {"expected" => true, "target" => ""}}, - {"plain string" => {"expected" => false, "target" => "hello"}} - ], - self.class.current_attribute(:data)[:value]) - end + def test_normal + base_dir = File.dirname(__FILE__) + file_name = File.join(base_dir, "fixtures", "header.csv") + self.class.load_data(file_name) + assert_equal([ + {"empty string" => {"expected" => true, "target" => ""}}, + {"plain string" => {"expected" => false, "target" => "hello"}} + ], + self.class.current_attribute(:data)[:value]) + end end def test_without_header -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 01:16:57 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Fri, 21 Dec 2012 10:16:57 +0900 Subject: [test-unit-commit:00534] test-unit/test-unit [master] Fold Message-ID: <20121221011711.4DE3A940422@jenkins.clear-code.com> Kouhei Sutou 2012-12-21 10:16:57 +0900 (Fri, 21 Dec 2012) New Revision: 4b8a9401478a6954e126c150da8e4585829bbf51 https://github.com/test-unit/test-unit/commit/4b8a9401478a6954e126c150da8e4585829bbf51 Log: Fold Modified files: test/test-data.rb Modified: test/test-data.rb (+12 -2) =================================================================== --- test/test-data.rb 2012-12-21 10:16:23 +0900 (b654bd3) +++ test/test-data.rb 2012-12-21 10:16:57 +0900 (3effb34) @@ -225,8 +225,18 @@ class TestData < Test::Unit::TestCase file_name = File.join(base_dir, "fixtures", "header.csv") self.class.load_data(file_name) assert_equal([ - {"empty string" => {"expected" => true, "target" => ""}}, - {"plain string" => {"expected" => false, "target" => "hello"}} + { + "empty string" => { + "expected" => true, + "target" => "" + } + }, + { + "plain string" => { + "expected" => false, + "target" => "hello" + } + } ], self.class.current_attribute(:data)[:value]) end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 01:23:42 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Fri, 21 Dec 2012 10:23:42 +0900 Subject: [test-unit-commit:00535] test-unit/test-unit [master] data: accept "label" as header name Message-ID: <20121221012353.4EB85940422@jenkins.clear-code.com> Kouhei Sutou 2012-12-21 10:23:42 +0900 (Fri, 21 Dec 2012) New Revision: 8cd655c2f3c7c926a580018f5c2b917279885933 https://github.com/test-unit/test-unit/commit/8cd655c2f3c7c926a580018f5c2b917279885933 Log: data: accept "label" as header name Modified files: lib/test/unit/data.rb test/test-data.rb Modified: lib/test/unit/data.rb (+11 -10) =================================================================== --- lib/test/unit/data.rb 2012-12-21 10:16:57 +0900 (fb48c8f) +++ lib/test/unit/data.rb 2012-12-21 10:23:42 +0900 (4901637) @@ -145,23 +145,24 @@ module Test # @api private def load_csv(file_name) require 'csv' + first_row = true header = nil CSV.foreach(file_name) do |row| - header = row if header.nil? - label = nil + if first_row + first_row = false + if row.first == "label" + header = row[1..-1] + next + end + end - if header.first == "label" - next if header == row + label = row.shift + if header data = {} header.each_with_index do |key, i| - if key == "label" - label = row[i] - else - data[key] = normalize_value(row[i]) - end + data[key] = normalize_value(row[i]) end else - label = row.shift data = row.collect do |cell| normalize_value(cell) end Modified: test/test-data.rb (+21 -0) =================================================================== --- test/test-data.rb 2012-12-21 10:16:57 +0900 (3effb34) +++ test/test-data.rb 2012-12-21 10:23:42 +0900 (95aebde) @@ -240,6 +240,27 @@ class TestData < Test::Unit::TestCase ], self.class.current_attribute(:data)[:value]) end + + def test_label + base_dir = File.dirname(__FILE__) + file_name = File.join(base_dir, "fixtures", "header-label.csv") + self.class.load_data(file_name) + assert_equal([ + { + "upper case" => { + "expected" => "HELLO", + "label" => "HELLO" + } + }, + { + "lower case" => { + "expected" => "Hello", + "label" => "hello" + } + } + ], + self.class.current_attribute(:data)[:value]) + end end def test_without_header -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 01:50:48 2012 From: null+test-unit ¡÷ clear-code.com (Kouhei Sutou) Date: Fri, 21 Dec 2012 10:50:48 +0900 Subject: [test-unit-commit:00536] test-unit/test-unit [master] Add missing fixture file Message-ID: <20121221015102.68C4B940422@jenkins.clear-code.com> Kouhei Sutou 2012-12-21 10:50:48 +0900 (Fri, 21 Dec 2012) New Revision: 21a3f5898efd37dda66e5ca15db533bbf7fa99e2 https://github.com/test-unit/test-unit/commit/21a3f5898efd37dda66e5ca15db533bbf7fa99e2 Log: Add missing fixture file Sorry... Added files: test/fixtures/header-label.csv Added: test/fixtures/header-label.csv (+3 -0) 100644 =================================================================== --- /dev/null +++ test/fixtures/header-label.csv 2012-12-21 10:50:48 +0900 (42cffe4) @@ -0,0 +1,3 @@ +label,expected,label +upper case,HELLO,HELLO +lower case,Hello,hello -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 05:08:06 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 14:08:06 +0900 Subject: [test-unit-commit:00537] test-unit/test-unit [master] Unify duplicate code Message-ID: <20121221050800.A83DD940C97@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 14:08:06 +0900 (Fri, 21 Dec 2012) New Revision: 13b9f2a768ee3daffcdf325b72e372c342439a8a https://github.com/test-unit/test-unit/commit/13b9f2a768ee3daffcdf325b72e372c342439a8a Log: Unify duplicate code Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+18 -36) =================================================================== --- lib/test/unit/data.rb 2012-12-21 14:05:20 +0900 (b0a74db) +++ lib/test/unit/data.rb 2012-12-21 14:08:06 +0900 (4f9719e) @@ -158,18 +158,7 @@ module Test end end - label = row.shift - if header - data = {} - header.each_with_index do |key, i| - data[key] = normalize_value(row[i]) - end - else - data = row.collect do |cell| - normalize_value(cell) - end - end - @test_case.data(label, data) + set_test_data(header, row) end end @@ -187,18 +176,7 @@ module Test end end - label = row.shift - if header - data = {} - header.each_with_index do |key, i| - data[key] = normalize_value(row[i]) - end - else - data = row.collect do |cell| - normalize_value(cell) - end - end - @test_case.data(label, data) + set_test_data(header, row) end else # for old CSV library @@ -213,18 +191,7 @@ module Test end end - label = row.shift - if header - data = {} - header.each_with_index do |key, i| - data[key] = normalize_value(row[i]) - end - else - data = row.collect do |cell| - normalize_value(cell) - end - end - @test_case.data(label, data) + set_test_data(header, row) end end end @@ -243,6 +210,21 @@ module Test end end end + + def set_test_data(header, row) + label = row.shift + if header + data = {} + header.each_with_index do |key, i| + data[key] = normalize_value(row[i]) + end + else + data = row.collect do |cell| + normalize_value(cell) + end + end + @test_case.data(label, data) + end end end end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 05:05:20 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 14:05:20 +0900 Subject: [test-unit-commit:00538] test-unit/test-unit [master] Add Test::Unit::Data::ClassMethods::Loader#load_tsv Message-ID: <20121221050800.8C894940422@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 14:05:20 +0900 (Fri, 21 Dec 2012) New Revision: 6052af8fcad56be32007b6eb8fd8a66360493d5a https://github.com/test-unit/test-unit/commit/6052af8fcad56be32007b6eb8fd8a66360493d5a Log: Add Test::Unit::Data::ClassMethods::Loader#load_tsv Added files: test/fixtures/header-label.tsv test/fixtures/header.tsv test/fixtures/no-header.tsv Modified files: lib/test/unit/data.rb test/test-data.rb Modified: lib/test/unit/data.rb (+58 -0) =================================================================== --- lib/test/unit/data.rb 2012-12-21 10:50:48 +0900 (4901637) +++ lib/test/unit/data.rb 2012-12-21 14:05:20 +0900 (b0a74db) @@ -109,6 +109,8 @@ module Test case File.extname(file_name).downcase when ".csv" load_csv(file_name) + when ".tsv" + load_tsv(file_name) else raise ArgumentError, "unsupported file format: <#{file_name}>" end @@ -171,6 +173,62 @@ module Test end end + def load_tsv(file_name) + require "csv" + if CSV.respond_to?(:dump) + first_row = true + header = nil + CSV.foreach(file_name, :col_sep => "\t") do |row| + if first_row + first_row = false + if row.first == "label" + header = row[1..-1] + next + end + end + + label = row.shift + if header + data = {} + header.each_with_index do |key, i| + data[key] = normalize_value(row[i]) + end + else + data = row.collect do |cell| + normalize_value(cell) + end + end + @test_case.data(label, data) + end + else + # for old CSV library + first_row = true + header = nil + CSV.open(file_name, "r", "\t") do |row| + if first_row + first_row = false + if row.first == "label" + header = row[1..-1] + next + end + end + + label = row.shift + if header + data = {} + header.each_with_index do |key, i| + data[key] = normalize_value(row[i]) + end + else + data = row.collect do |cell| + normalize_value(cell) + end + end + @test_case.data(label, data) + end + end + end + private def normalize_value(value) return true if value == "true" Added: test/fixtures/header-label.tsv (+3 -0) 100644 =================================================================== --- /dev/null +++ test/fixtures/header-label.tsv 2012-12-21 14:05:20 +0900 (25f84bd) @@ -0,0 +1,3 @@ +label expected label +upper case HELLO HELLO +lower case Hello hello Added: test/fixtures/header.tsv (+3 -0) 100644 =================================================================== --- /dev/null +++ test/fixtures/header.tsv 2012-12-21 14:05:20 +0900 (5e01a6f) @@ -0,0 +1,3 @@ +label expected target +empty string true "" +plain string false hello Added: test/fixtures/no-header.tsv (+2 -0) 100644 =================================================================== --- /dev/null +++ test/fixtures/no-header.tsv 2012-12-21 14:05:20 +0900 (7759309) @@ -0,0 +1,2 @@ +empty string true "" +plain string false hello Modified: test/test-data.rb (+61 -0) =================================================================== --- test/test-data.rb 2012-12-21 10:50:48 +0900 (95aebde) +++ test/test-data.rb 2012-12-21 14:05:20 +0900 (c41a1f3) @@ -274,5 +274,66 @@ class TestData < Test::Unit::TestCase self.class.current_attribute(:data)[:value]) end end + + class TestTSV < self + def setup + self.class.current_attribute(:data).clear + end + + class TestHeader < self + def test_normal + base_dir = File.dirname(__FILE__) + file_name = File.join(base_dir, "fixtures", "header.tsv") + self.class.load_data(file_name) + assert_equal([ + { + "empty string" => { + "expected" => true, + "target" => "" + } + }, + { + "plain string" => { + "expected" => false, + "target" => "hello" + } + } + ], + self.class.current_attribute(:data)[:value]) + end + + def test_label + base_dir = File.dirname(__FILE__) + file_name = File.join(base_dir, "fixtures", "header-label.tsv") + self.class.load_data(file_name) + assert_equal([ + { + "upper case" => { + "expected" => "HELLO", + "label" => "HELLO" + } + }, + { + "lower case" => { + "expected" => "Hello", + "label" => "hello" + } + } + ], + self.class.current_attribute(:data)[:value]) + end + end + + def test_without_header + base_dir = File.dirname(__FILE__) + file_name = File.join(base_dir, "fixtures", "no-header.tsv") + self.class.load_data(file_name) + assert_equal([ + {"empty string" => [true, ""]}, + {"plain string" => [false, "hello"]} + ], + self.class.current_attribute(:data)[:value]) + end + end end end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 05:57:30 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 14:57:30 +0900 Subject: [test-unit-commit:00539] test-unit/test-unit [master] Use fixture_file_path Message-ID: <20121221055724.79A48940CA4@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 14:57:30 +0900 (Fri, 21 Dec 2012) New Revision: 4c97a4c64fc169905ba84a5c8ca033b2d8e7d1c7 https://github.com/test-unit/test-unit/commit/4c97a4c64fc169905ba84a5c8ca033b2d8e7d1c7 Log: Use fixture_file_path Modified files: test/test-data.rb Modified: test/test-data.rb (+2 -2) =================================================================== --- test/test-data.rb 2012-12-21 14:55:34 +0900 (e0f67dc) +++ test/test-data.rb 2012-12-21 14:57:30 +0900 (9d00c06) @@ -68,8 +68,8 @@ class TestData < Test::Unit::TestCase end class TestLoadDataSet < TestCalc - base_dir = File.dirname(__FILE__) - load_data("#{base_dir}/fixtures/plus.csv") + extend TestUnitTestUtil + load_data(fixture_file_path("plus.csv")) def test_plus(data) assert_equal(data["expected"], @calc.plus(data["augend"], data["addend"])) -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 05:55:34 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 14:55:34 +0900 Subject: [test-unit-commit:00540] test-unit/test-unit [master] Use fixture_file_path Message-ID: <20121221055724.613D8940C97@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 14:55:34 +0900 (Fri, 21 Dec 2012) New Revision: 3f4cd4a3f511532cdd8708ba535e22fe8d25a144 https://github.com/test-unit/test-unit/commit/3f4cd4a3f511532cdd8708ba535e22fe8d25a144 Log: Use fixture_file_path Modified files: test/test-data.rb Modified: test/test-data.rb (+9 -12) =================================================================== --- test/test-data.rb 2012-12-21 14:55:18 +0900 (c41a1f3) +++ test/test-data.rb 2012-12-21 14:55:34 +0900 (e0f67dc) @@ -1,3 +1,5 @@ +require "testunit-test-util" + class TestData < Test::Unit::TestCase class Calc def initialize @@ -206,6 +208,7 @@ class TestData < Test::Unit::TestCase end class TestLoadData < Test::Unit::TestCase + include TestUnitTestUtil def test_invalid_csv_file_name garbage = "X" file_name = "data.csv#{garbage}" @@ -221,8 +224,7 @@ class TestData < Test::Unit::TestCase class TestHeader < self def test_normal - base_dir = File.dirname(__FILE__) - file_name = File.join(base_dir, "fixtures", "header.csv") + file_name = fixture_file_path("header.csv") self.class.load_data(file_name) assert_equal([ { @@ -242,8 +244,7 @@ class TestData < Test::Unit::TestCase end def test_label - base_dir = File.dirname(__FILE__) - file_name = File.join(base_dir, "fixtures", "header-label.csv") + file_name = fixture_file_path("header-label.csv") self.class.load_data(file_name) assert_equal([ { @@ -264,8 +265,7 @@ class TestData < Test::Unit::TestCase end def test_without_header - base_dir = File.dirname(__FILE__) - file_name = File.join(base_dir, "fixtures", "no-header.csv") + file_name = fixture_file_path("no-header.csv") self.class.load_data(file_name) assert_equal([ {"empty string" => [true, ""]}, @@ -282,8 +282,7 @@ class TestData < Test::Unit::TestCase class TestHeader < self def test_normal - base_dir = File.dirname(__FILE__) - file_name = File.join(base_dir, "fixtures", "header.tsv") + file_name = fixture_file_path("header.tsv") self.class.load_data(file_name) assert_equal([ { @@ -303,8 +302,7 @@ class TestData < Test::Unit::TestCase end def test_label - base_dir = File.dirname(__FILE__) - file_name = File.join(base_dir, "fixtures", "header-label.tsv") + file_name = fixture_file_path("header-label.tsv") self.class.load_data(file_name) assert_equal([ { @@ -325,8 +323,7 @@ class TestData < Test::Unit::TestCase end def test_without_header - base_dir = File.dirname(__FILE__) - file_name = File.join(base_dir, "fixtures", "no-header.tsv") + file_name = fixture_file_path("no-header.tsv") self.class.load_data(file_name) assert_equal([ {"empty string" => [true, ""]}, -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 05:55:18 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 14:55:18 +0900 Subject: [test-unit-commit:00541] test-unit/test-unit [master] Add fixture_file_path Message-ID: <20121221055724.4BF8D940422@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 14:55:18 +0900 (Fri, 21 Dec 2012) New Revision: 2a2168938e0a41aa93ec152882afb6b4bd15ef62 https://github.com/test-unit/test-unit/commit/2a2168938e0a41aa93ec152882afb6b4bd15ef62 Log: Add fixture_file_path Modified files: test/testunit-test-util.rb Modified: test/testunit-test-util.rb (+5 -0) =================================================================== --- test/testunit-test-util.rb 2012-12-21 14:08:06 +0900 (991ce5b) +++ test/testunit-test-util.rb 2012-12-21 14:55:18 +0900 (306ee39) @@ -23,4 +23,9 @@ module TestUnitTestUtil test.run(result) {} result end + + def fixture_file_path(file_name) + base_dir = File.dirname(__FILE__) + File.join(base_dir, "fixtures", file_name) + end end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 05:59:37 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 14:59:37 +0900 Subject: [test-unit-commit:00542] test-unit/test-unit [master] TestCSV -> TestFileFormat Message-ID: <20121221060339.74A67940422@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 14:59:37 +0900 (Fri, 21 Dec 2012) New Revision: e0e6cef799f01c3c4a113e56d6f2f9710dd305db https://github.com/test-unit/test-unit/commit/e0e6cef799f01c3c4a113e56d6f2f9710dd305db Log: TestCSV -> TestFileFormat Modified files: test/test-data.rb Modified: test/test-data.rb (+1 -1) =================================================================== --- test/test-data.rb 2012-12-21 14:57:30 +0900 (9d00c06) +++ test/test-data.rb 2012-12-21 14:59:37 +0900 (1f4aa8a) @@ -217,7 +217,7 @@ class TestData < Test::Unit::TestCase end end - class TestCSV < self + class TestFileFormat < self def setup self.class.current_attribute(:data).clear end -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 06:03:37 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 15:03:37 +0900 Subject: [test-unit-commit:00543] test-unit/test-unit [master] Unify duplicate test code Message-ID: <20121221060339.8B111940C97@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 15:03:37 +0900 (Fri, 21 Dec 2012) New Revision: bde2ebd7eabb70e2c0cc916ebbf3026b6b588d4f https://github.com/test-unit/test-unit/commit/bde2ebd7eabb70e2c0cc916ebbf3026b6b588d4f Log: Unify duplicate test code Modified files: test/test-data.rb Modified: test/test-data.rb (+12 -67) =================================================================== --- test/test-data.rb 2012-12-21 14:59:37 +0900 (1f4aa8a) +++ test/test-data.rb 2012-12-21 15:03:37 +0900 (fa59244) @@ -223,9 +223,10 @@ class TestData < Test::Unit::TestCase end class TestHeader < self - def test_normal - file_name = fixture_file_path("header.csv") - self.class.load_data(file_name) + data("csv" => "header.csv", + "tsv" => "header.tsv") + def test_normal(file_name) + self.class.load_data(fixture_file_path(file_name)) assert_equal([ { "empty string" => { @@ -243,9 +244,10 @@ class TestData < Test::Unit::TestCase self.class.current_attribute(:data)[:value]) end - def test_label - file_name = fixture_file_path("header-label.csv") - self.class.load_data(file_name) + data("csv" => "header-label.csv", + "tsv" => "header-label.csv") + def test_label(file_name) + self.class.load_data(fixture_file_path(file_name)) assert_equal([ { "upper case" => { @@ -264,67 +266,10 @@ class TestData < Test::Unit::TestCase end end - def test_without_header - file_name = fixture_file_path("no-header.csv") - self.class.load_data(file_name) - assert_equal([ - {"empty string" => [true, ""]}, - {"plain string" => [false, "hello"]} - ], - self.class.current_attribute(:data)[:value]) - end - end - - class TestTSV < self - def setup - self.class.current_attribute(:data).clear - end - - class TestHeader < self - def test_normal - file_name = fixture_file_path("header.tsv") - self.class.load_data(file_name) - assert_equal([ - { - "empty string" => { - "expected" => true, - "target" => "" - } - }, - { - "plain string" => { - "expected" => false, - "target" => "hello" - } - } - ], - self.class.current_attribute(:data)[:value]) - end - - def test_label - file_name = fixture_file_path("header-label.tsv") - self.class.load_data(file_name) - assert_equal([ - { - "upper case" => { - "expected" => "HELLO", - "label" => "HELLO" - } - }, - { - "lower case" => { - "expected" => "Hello", - "label" => "hello" - } - } - ], - self.class.current_attribute(:data)[:value]) - end - end - - def test_without_header - file_name = fixture_file_path("no-header.tsv") - self.class.load_data(file_name) + data("csv" => "no-header.csv", + "tsv" => "no-header.tsv") + def test_without_header(file_name) + self.class.load_data(fixture_file_path(file_name)) assert_equal([ {"empty string" => [true, ""]}, {"plain string" => [false, "hello"]} -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 06:04:20 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 15:04:20 +0900 Subject: [test-unit-commit:00544] test-unit/test-unit [master] Fix a typo Message-ID: <20121221060409.0C54E940422@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 15:04:20 +0900 (Fri, 21 Dec 2012) New Revision: 540907d6534b0f63236bf948dddc6e8e6d128d3d https://github.com/test-unit/test-unit/commit/540907d6534b0f63236bf948dddc6e8e6d128d3d Log: Fix a typo Modified files: test/test-data.rb Modified: test/test-data.rb (+1 -1) =================================================================== --- test/test-data.rb 2012-12-21 15:03:37 +0900 (fa59244) +++ test/test-data.rb 2012-12-21 15:04:20 +0900 (c38df7d) @@ -245,7 +245,7 @@ class TestData < Test::Unit::TestCase end data("csv" => "header-label.csv", - "tsv" => "header-label.csv") + "tsv" => "header-label.tsv") def test_label(file_name) self.class.load_data(fixture_file_path(file_name)) assert_equal([ -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 06:15:38 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 15:15:38 +0900 Subject: [test-unit-commit:00545] test-unit/test-unit [master] Add @see #load_tsv Message-ID: <20121221061526.D49C1940C97@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 15:15:38 +0900 (Fri, 21 Dec 2012) New Revision: d6e6cf6793e5bae60064fd9696f4209207a23e74 https://github.com/test-unit/test-unit/commit/d6e6cf6793e5bae60064fd9696f4209207a23e74 Log: Add @see #load_tsv Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+1 -0) =================================================================== --- lib/test/unit/data.rb 2012-12-21 15:10:14 +0900 (cd18e50) +++ lib/test/unit/data.rb 2012-12-21 15:15:38 +0900 (b9c0dd7) @@ -104,6 +104,7 @@ module Test # File format is automatically detected from filename extension. # @raise [ArgumentError] if +file_name+ is not supported file format. # @see #load_csv + # @see #load_tsv # @api private def load(file_name) case File.extname(file_name).downcase -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: From null+test-unit ¡÷ clear-code.com Fri Dec 21 06:10:14 2012 From: null+test-unit ¡÷ clear-code.com (Kenji Okimoto) Date: Fri, 21 Dec 2012 15:10:14 +0900 Subject: [test-unit-commit:00546] test-unit/test-unit [master] Add document about TSV format Message-ID: <20121221061526.BBC48940422@jenkins.clear-code.com> Kenji Okimoto 2012-12-21 15:10:14 +0900 (Fri, 21 Dec 2012) New Revision: e3add124d621a62c330860b16235db3c5d22e0ad https://github.com/test-unit/test-unit/commit/e3add124d621a62c330860b16235db3c5d22e0ad Log: Add document about TSV format Modified files: lib/test/unit/data.rb Modified: lib/test/unit/data.rb (+29 -0) =================================================================== --- lib/test/unit/data.rb 2012-12-21 15:04:20 +0900 (4f9719e) +++ lib/test/unit/data.rb 2012-12-21 15:10:14 +0900 (cd18e50) @@ -162,6 +162,35 @@ module Test end end + # Load data from TSV file. + # + # There are 2 types of TSV file as following examples. + # First, there is a header on first row and it's first column is "label". + # Another, there is no header in the file. + # + # @example Load data from TSV file with header + # # test-data.tsv: + # # label expected target + # # empty string true "" + # # plain string false hello + # # + # load_data("/path/to/test-data.tsv") + # def test_empty?(data) + # assert_equal(data["expected"], data["target"].empty?) + # end + # + # @example Load data from TSV file without header + # # test-data-without-header.tsv: + # # empty string true "" + # # plain string false hello + # # + # load_data("/path/to/test-data-without-header.tsv") + # def test_empty?(data) + # expected, target = data + # assert_equal(expected, target.empty?) + # end + # + # @api private def load_tsv(file_name) require "csv" if CSV.respond_to?(:dump) -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: