Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lunarhjri1445 adjustment and test #14

Merged
merged 4 commits into from
Oct 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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);
}
}
}
Loading