Skip to content

Commit

Permalink
Merge pull request #14 from armanatory/lunarhjri1445-adjustment-and-test
Browse files Browse the repository at this point in the history
Lunarhjri1445 adjustment and test
  • Loading branch information
naeemaei committed Oct 2, 2023
2 parents bfb388f + 2733d93 commit dc06261
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 5 deletions.
17 changes: 17 additions & 0 deletions PersianTools.Core/PersianTools.Core/HijriCalendarManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,23 @@ internal static HijriCalendar SetHijriCalendar(DateTime datetime)

break;

case 1445: /* 1402-1403 */
hijri.HijriAdjustment = -1;

if (month == 3 && day == 1)
{
hijri.HijriAdjustment = -2;
day = hijri.GetDayOfMonth(datetime);
month = hijri.GetMonth(datetime);
}
else if (month == 3 || month == 6 || month == 7 || month == 9 || month == 10)
{
hijri.HijriAdjustment = -2;
}


break;

default:
hijri.HijriAdjustment = -1;
break;
Expand Down
1 change: 0 additions & 1 deletion PersianTools.Core/PersianTools.Core/PersianHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ public static class PersianHelper
public static Boolean IsValidNationalCode(this String nationalCode)
{
//در صورتی که کد ملی وارد شده تهی باشد

if (String.IsNullOrEmpty(nationalCode))
throw new ArgumentException("لطفا کد ملی را صحیح وارد نمایید");

Expand Down
39 changes: 35 additions & 4 deletions PersianTools.Core/PersianTools.Test/DateTimeTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -291,16 +291,16 @@ public void Hijri_HolyDays_1398To1399(int year, int month, int day)
[InlineData(1400, 3, 16)]
[InlineData(1400, 4, 30)]
[InlineData(1400, 5, 7)]
[InlineData(1400, 5, 27)]
[InlineData(1400, 5, 28)]
public void Hijri_HolyDays_1399To1400(int year, int month, int day)
{
var theDate = new PersianDateTime(year, month, day);
Assert.True(CheckHijriHolyday(theDate), CombineDates(theDate));
}


[Theory]
[Theory] // LunarYear 1443, from 19-05-1400 to 08-05-1401
[InlineData(1400, 5, 27)]
[InlineData(1400, 5, 28)]
[InlineData(1400, 7, 5)]
[InlineData(1400, 7, 13)]
[InlineData(1400, 7, 14)]
Expand All @@ -317,6 +317,13 @@ public void Hijri_HolyDays_1399To1400(int year, int month, int day)
[InlineData(1401, 3, 6)]
[InlineData(1401, 4, 19)]
[InlineData(1401, 4, 27)]
public void Hijri_HolyDays_1401To1402_lunarYear1443(int year, int month, int day)
{
var theDate = new PersianDateTime(year, month, day);
Assert.True(CheckHijriHolyday(theDate), CombineDates(theDate));
}

[Theory]// LunarYear 1444, from 08-05-1401 to 27-04-1402
[InlineData(1401, 5, 16)]
[InlineData(1401, 5, 17)]
[InlineData(1401, 6, 26)]
Expand All @@ -334,7 +341,31 @@ public void Hijri_HolyDays_1399To1400(int year, int month, int day)
[InlineData(1402, 2, 26)]
[InlineData(1402, 4, 8)]
[InlineData(1402, 4, 16)]
public void Hijri_HolyDays_1400To1401(int year, int month, int day)
public void Hijri_HolyDays_1401To1402_lunarYear1444(int year, int month, int day)
{
var theDate = new PersianDateTime(year, month, day);
Assert.True(CheckHijriHolyday(theDate), CombineDates(theDate));
}

[Theory] // LunarYear 1445, from 28-04-1402 to 18-04-1403
[InlineData(1402, 05, 05)]
[InlineData(1402, 05, 06)]
[InlineData(1402, 06, 15)]
[InlineData(1402, 06, 23)]
[InlineData(1402, 06, 25)]
[InlineData(1402, 07, 02)]
[InlineData(1402, 07, 11)]
[InlineData(1402, 09, 26)]
[InlineData(1402, 11, 05)]
[InlineData(1402, 11, 19)]
[InlineData(1402, 12, 06)]
[InlineData(1403, 01, 13)]
[InlineData(1403, 01, 23)]
[InlineData(1403, 01, 24)]
[InlineData(1403, 02, 16)]
[InlineData(1403, 03, 28)]
[InlineData(1403, 04, 05)]
public void Hijri_HolyDays_1402To1403_lunarYear1445(int year, int month, int day)
{
var theDate = new PersianDateTime(year, month, day);
Assert.True(CheckHijriHolyday(theDate), CombineDates(theDate));
Expand Down
10 changes: 10 additions & 0 deletions PersianTools.Core/PersianTools.Test/ValidationTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using PersianTools.Core;
using System;
using Xunit;

namespace PersianTools.Test
Expand Down Expand Up @@ -28,5 +29,14 @@ public void When_NationalIdIsFalse_Then_ResultIsFalse(string nationalCode)

Assert.False(validate);
}

[Theory]
[InlineData("1111111111")]
public void When_NationalIdIsAllTheSame_Then_ResultIsFalse(string nationalCode)
{
var validate = nationalCode.IsValidNationalCode();

Assert.False(validate);
}
}
}

0 comments on commit dc06261

Please sign in to comment.