## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+require 'date'
require 'fileutils'
require 'pathname'
end
module_function :is_writable_file?
+ # Convert a DateTime insntace to a Time instance.
+ #
+ def datetime2time(dt)
+ return Time.mktime dt.year, dt.month, dt.day, dt.hour, dt.min, dt.sec
+ end
+ module_function :datetime2time
+
+ # Convert a Time instance to a DateTime instance
+ #
+ def time2datetime(time)
+ return DateTime.new(time.year, time.mon, time.mday,
+ time.hour, time.min, time.sec)
+ end
+ module_function :time2datetime
+
+ # Parse string representing a day-of-week and return a coresponding
+ # integer value: 1 (Monday) - 7 (Sunday)
+ #
+ def parse_dow(str)
+ index = Date::DAYNAMES.index(str) || Date::ABBR_DAYNAMES.index(str)
+ return nil if index.nil?
+ return index == 0 ? 7 : index
+ end
+ module_function :parse_dow
end
--- /dev/null
+$:.unshift File.join(File.dirname(__FILE__), "..")
+require 'test/unit'
+require 'shogi_server/util'
+
+class TestShogiServer < Test::Unit::TestCase
+
+ def test_datetime2time
+ now = DateTime.new(2010, 6, 10, 21, 20, 15) # Thu
+
+ assert_instance_of Time, ShogiServer::datetime2time(now)
+ assert_equal Time.mktime(2010, 6, 10, 21, 20, 15), ShogiServer::datetime2time(now)
+ end
+
+ def test_time2datetime
+ now = Time.mktime(2010, 6, 10, 21, 20, 15)
+ assert_instance_of DateTime, ShogiServer::time2datetime(now)
+ assert_equal DateTime.new(2010, 6, 10, 21, 20, 15), ShogiServer::time2datetime(now)
+ end
+
+ def test_parse_dow
+ assert_equal 7, ShogiServer.parse_dow("Sun")
+ assert_equal 1, ShogiServer.parse_dow("Mon")
+ assert_equal 2, ShogiServer.parse_dow("Tue")
+ assert_equal 3, ShogiServer.parse_dow("Wed")
+ assert_equal 4, ShogiServer.parse_dow("Thu")
+ assert_equal 5, ShogiServer.parse_dow("Fri")
+ assert_equal 6, ShogiServer.parse_dow("Sat")
+ assert_equal 7, ShogiServer.parse_dow("Sunday")
+ assert_equal 1, ShogiServer.parse_dow("Monday")
+ assert_equal 2, ShogiServer.parse_dow("Tuesday")
+ assert_equal 3, ShogiServer.parse_dow("Wednesday")
+ assert_equal 4, ShogiServer.parse_dow("Thursday")
+ assert_equal 5, ShogiServer.parse_dow("Friday")
+ assert_equal 6, ShogiServer.parse_dow("Saturday")
+ end
+
+end