<commit_before>if RUBY_VERSION < '1.9'
	require 'rational'
end

class JulianDay
	GREGORIAN = 0
	JULIAN    = 1

	SUNDAY    = 0
	MONDAY    = 1
	TUESDAY   = 2
	WEDNESDAY = 3
	THURSDAY  = 4
	FRIDAY    = 5
	SATURDAY  = 6

	UTC  =    0
	AEDT =  660 # オーストラリア東部夏時間
	ACDT =  630 # オーストラリア中部夏時間 (UTC+10:30)
	AEST =  600 # オーストラリア東部標準時
	ACST =  570 # オーストラリア中部標準時 (UTC+9:30)
	JST  =  540 # 日本標準時
	AWST =  480 # オーストラリア西部標準時
	IST  =  330 # インド標準時 (UTC+5:30)
	MSK  =  240 # モスクワ標準時
	EEST =  180 # 東部ヨーロッパ夏時間
	EET  =  120 # 東部ヨーロッパ時間
	CEST =  120 # 中部ヨーロッパ夏時間
	CET  =   60 # 中部ヨーロッパ時間
	WEST =   60 # 西部ヨーロッパ夏時間
	WET  =    0 # 西部ヨーロッパ時間
	ADT  = -180 # 大西洋夏時間
	AST  = -240 # 大西洋標準時
	EDT  = -240 # 東部夏時間
	EST  = -300 # 東部標準時
	CDT  = -300 # 中部夏時間
	CST  = -360 # 中部標準時
	MDT  = -360 # 山岳部夏時間
	MST  = -420 # 山岳部標準時
	PDT  = -420 # 太平洋夏時間
	PST  = -480 # 太平洋標準時
	AKDT = -480 # アラスカ夏時間
	AKST = -540 # アラスカ標準時

	# コンストラクタ
	#
	# @param [JulianDay, Numeric, Time, Array] arg 指定する日時。
	#   * 省略すると現在の日時で生成します。
	#   * JulianDay で与えると同じ日時で生成します。
	#   * Numeric で与えると値をユリウス日とみなして生成します。
	#       時分秒など細かく指定するときは Rational を用いる方が
	#       正確に処理できます。 unix time として指定したいときは
	#       {#at_time} を用います。
	#   * Time で与えるとその日時で生成します。
	#   * Array で与えると [year = 2000, month = 1, day = 1,
	#       hour = 0, min = 0, sec = 0, usec = 0, tz_offset = 0] と
	#       処理します。ただし各要素は整数とみなします。
	#       +day+ は 0 を取ることができ、前月末日とみなされます。
	#       +tz_offset+ は分単位の時差で東が正です。
	# @param [Boolean] is_julian ユリウス暦とみなすかどうか。
	#   日付からユリウス日を生成するときや、その逆のときに
	#   ユリウス暦かグレゴリオ暦かを指定します。デフォルトは
	#   グレゴリオ暦です。この値は {#julian} や {#gregorian} で
	#   変更することができます。
	# @return self
	# @raise [TypeError] 引数が想定していない型のとき。
	# @raise [RangeError] +arg+ が配列のとき、各要素値が範囲内にないとき。
	def initialize(arg = nil, is_julian = false)
		is_julian ? julian : gregorian
		
		if arg.nil?
			at_time(Time.now)
		elsif arg.kind_of?(self.class) || arg.kind_of?(Numeric)
			at(arg)
		elsif arg.kind_of?(Time) || arg.kind_of?(Array)
			at_time(arg)
		else
			raise TypeError
		end

		self
	end

	# 指定したユリウス日に変更します。
	#
	# @param [JulianDay, Numeric] julian_day 指定するユリウス日。
	# @return self
	# @raise [TypeError] 引数が想定していない型のとき。<commit_msg>FIX: lib/julian_day.rb<commit_after>if RUBY_VERSION < '1.9'
	require 'rational'
end

class JulianDay
	GREGORIAN = 0
	JULIAN    = 1

	SUNDAY    = 0
	MONDAY    = 1
	TUESDAY   = 2
	WEDNESDAY = 3
	THURSDAY  = 4
	FRIDAY    = 5
	SATURDAY  = 6

	UTC  =    0
	AEDT =  660 # オーストラリア東部夏時間
	ACDT =  630 # オーストラリア中部夏時間 (UTC+10:30)
	AEST =  600 # オーストラリア東部標準時
	ACST =  570 # オーストラリア中部標準時 (UTC+9:30)
	JST  =  540 # 日本標準時
	AWST =  480 # オーストラリア西部標準時
	IST  =  330 # インド標準時 (UTC+5:30)
	MSK  =  240 # モスクワ標準時
	EEST =  180 # 東部ヨーロッパ夏時間
	EET  =  120 # 東部ヨーロッパ時間
	CEST =  120 # 中部ヨーロッパ夏時間
	CET  =   60 # 中部ヨーロッパ時間
	WEST =   60 # 西部ヨーロッパ夏時間
	WET  =    0 # 西部ヨーロッパ時間
	ADT  = -180 # 大西洋夏時間
	AST  = -240 # 大西洋標準時
	EDT  = -240 # 東部夏時間
	EST  = -300 # 東部標準時
	CDT  = -300 # 中部夏時間
	CST  = -360 # 中部標準時
	MDT  = -360 # 山岳部夏時間
	MST  = -420 # 山岳部標準時
	PDT  = -420 # 太平洋夏時間
	PST  = -480 # 太平洋標準時
	AKDT = -480 # アラスカ夏時間
	AKST = -540 # アラスカ標準時

	# コンストラクタ
	#
	# @param [JulianDay, Numeric, Time, Array] arg 指定する日時。
	#   * 省略すると現在の日時で生成します。
	#   * JulianDay で与えると同じ日時で生成します。
	#   * Numeric で与えると値をユリウス日とみなして生成します。
	#       時分秒など細かく指定するときは Rational を用いる方が
	#       正確に処理できます。 unix time として指定したいときは
	#       {#at_time} を用います。
	#   * Time で与えるとその日時で生成します。
	#   * Array で与えると [year = 2000, month = 1, day = 1,
	#       hour = 0, min = 0, sec = 0, usec = 0, tz_offset = 0] と
	#       処理します。ただし各要素は整数とみなします。
	#       +day+ は 0 を取ることができ、前月末日とみなされます。
	#       +tz_offset+ は分単位の時差で東が正です。
	# @param [Boolean] is_julian ユリウス暦とみなすかどうか。
	#   日付からユリウス日を生成するときや、その逆のときに
	#   ユリウス暦かグレゴリオ暦かを指定します。デフォルトは
	#   グレゴリオ暦です。この値は {#julian} や {#gregorian} で
	#   変更することができます。
	# @return self
	# @raise [TypeError] 引数が想定していない型のとき。
	# @raise [RangeError] +arg+ が配列のとき、各要素値が範囲内にないとき。
	def initialize(arg = nil, is_julian = false)
		if arg.nil?
			is_julian ? julian : gregorian
			at_time(Time.now)
		elsif arg.kind_of?(TrueClass) || arg.kind_of?(FalseClass)
			arg ? julian : gregorian
			at_time(Time.now)
		elsif arg.kind_of?(self.class) || arg.kind_of?(Numeric)
			is_julian ? julian : gregorian
			at(arg)
		elsif arg.kind_of?(Time) || arg.kind_of?(Array)
			is_julian ? julian : gregorian
			at_time(arg)
		else
			raise TypeError
		end

		self
	end

	# 指定したユリウス日に変更します。
	#
	# @param [JulianDay, Numeric] julian_day 指定するユリウス日。
	# @return self
	# @raise [TypeError] 引数が想定していない型のとき。
{'fraction_non_alphanumeric': 0.11450381679389313, 'fraction_numerical': 0.048495734171531205, 'mean_word_length': 2.8372093023255816, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3577247', 'n_tokens_mistral': 3046, 'n_tokens_neox': 2867, 'n_words': 445}