require 'date'
require_relative '../../spec_helper'

describe "Date#ajd" do
  it "determines the Astronomical Julian day" do
    Date.civil(2007, 1, 17).ajd.should == 4908235.to_r / 2
  end
end

describe "Date#amjd" do
  it "determines the Astronomical Modified Julian day" do
    Date.civil(2007, 1, 17).amjd.should == 54117
  end
end

describe "Date#day_fraction" do
  it "determines the day fraction" do
    Date.civil(2007, 1, 17).day_fraction.should == 0
  end
end

describe "Date#mjd" do
  it "determines the Modified Julian day" do
    Date.civil(2007, 1, 17).mjd.should == 54117
  end
end

describe "Date#ld" do
  it "determines the Modified Julian day" do
    Date.civil(2007, 1, 17).ld.should == 154958
  end
end

describe "Date#year" do
  it "determines the year" do
    Date.civil(2007, 1, 17).year.should == 2007
  end
end

describe "Date#yday" do
  it "determines the day of the year" do
    Date.civil(2007,  1, 17).yday.should == 17
    Date.civil(2008, 10, 28).yday.should == 302
  end
end

describe "Date#mon" do
  it "determines the month" do
    Date.civil(2007,  1, 17).mon.should == 1
    Date.civil(2008, 10, 28).mon.should == 10
  end
end

describe "Date#mday" do
  it "determines the day of the month" do
    Date.civil(2007,  1, 17).mday.should == 17
    Date.civil(2008, 10, 28).mday.should == 28
  end
end

describe "Date#wday" do
  it "determines the week day" do
    Date.civil(2007,  1, 17).wday.should == 3
    Date.civil(2008, 10, 26).wday.should == 0
  end
end

describe "Date#cwyear" do
  it "determines the commercial year" do
    Date.civil(2007,  1, 17).cwyear.should == 2007
    Date.civil(2008, 10, 28).cwyear.should == 2008
    Date.civil(2007, 12, 31).cwyear.should == 2008
    Date.civil(2010,  1,  1).cwyear.should == 2009
  end
end

describe "Date#cweek" do
  it "determines the commercial week" do
    Date.civil(2007,  1, 17).cweek.should == 3
    Date.civil(2008, 10, 28).cweek.should == 44
    Date.civil(2007, 12, 31).cweek.should == 1
    Date.civil(2010,  1,  1).cweek.should == 53
  end
end

describe "Date#cwday" do
  it "determines the commercial week day" do
    Date.civil(2007,  1, 17).cwday.should == 3
    Date.civil(2008, 10, 26).cwday.should == 7
  end
end
