// Path: hamcrest/hamcrest-matchers/src/test/java/it/ozimov/cirneco/hamcrest/BaseMatcherTest.java
// @RunWith(MockitoJUnitRunner.class)
// public abstract class BaseMatcherTest {
// 
//     @Rule
//     public ExpectedException thrown = ExpectedException.none();
// 
//     public static <T> void assertMatches(final String message, final boolean matches) {
//         assertTrue(message, matches);
//     }
// 
//     public static <T> void assertMatches(final boolean matches) {
//         assertMatches("Expected to match, but mismatched", matches);
//     }
// 
//     public static <T> void assertDoesNotMatch(final String message, final boolean matches) {
//         assertFalse(message, matches);
//     }
// 
//     public static <T> void assertDoesNotMatch(final boolean matches) {
//         assertDoesNotMatch("Unexpected matching", matches);
//     }
// 
//     public static void assertIsDescribedTo(final String expectedDescription, final Matcher<?> matcher) {
// 
//         // Act
//         final String actualDescription = descriptionFromMatcher(matcher);
// 
//         // Assert
//         assertThat("Expected description does not match the one returned by the Matcher " + getSimpleName(matcher),
//                 expectedDescription, equalTo(actualDescription));
//     }
// 
//     public static <T> void assertHasMismatchDescription(final String expectedDescription,
//                                                         final Matcher<? super T> matcher, final T matcherArgument) {
// 
//         // Assert
//         assertThat(format("The given matcher has no mismatch with value \"%s\"", matcherArgument),
//                 matcher.matches(matcherArgument), is(false));
// 
//         // Act
//         final String actualMismatchDescription = mismatchDescriptionForMatcherFromArgument(matcher, matcherArgument);
// 
//         // Assert
//         assertThat("Expected mismatch description does not match the one returned by the Matcher "
//                 + getSimpleName(matcher), expectedDescription, equalTo(actualMismatchDescription));
//     }
// 
//     private static String descriptionFromMatcher(final Matcher<?> matcher) {
//         return new StringDescription().appendDescriptionOf(matcher).toString().trim();
//     }
// 
//     protected static <T> String mismatchDescriptionForMatcherFromArgument(final Matcher<? super T> matcher,
//                                                                           final T arg) {
//         final Description description = new StringDescription();
//         matcher.describeMismatch(arg, description);
// 
//         return description.toString().trim();
//     }
// 
//     private static String getSimpleName(final Matcher<?> matcher) {
//         return matcher.getClass().getSimpleName();
//     }
// 
// }
// 
// Path: hamcrest/hamcrest-matchers/src/test/java/it/ozimov/cirneco/hamcrest/date/DateTestUtils.java
// public static Date date(final int year, final int month, final int day, final int hour, final int minute,
//                         final int second, final int millisecond) throws ParseException {
//     final DateTimeZone dateTimeZone = DateTimeZone.forOffsetHours(0);
//     final DateTime dateTime = new DateTime(year, month, day, hour, minute, second, millisecond, dateTimeZone);
// 
//     return new SimpleDateFormat(FORMAT).parse(dateTime.toString(FORMAT));
// }


import it.ozimov.cirneco.hamcrest.BaseMatcherTest;
import org.hamcrest.Matcher;
import org.junit.Before;
import org.junit.Test;
import java.text.ParseException;
import java.util.Date;
import static it.ozimov.cirneco.hamcrest.date.DateTestUtils.date;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
package it.ozimov.cirneco.hamcrest.date;




public class IsDateInLeapYearTest extends BaseMatcherTest {

    public Matcher<Date> isLeapYearMatcher;
    public Date leapYear;
// Path: hamcrest/hamcrest-matchers/src/test/java/it/ozimov/cirneco/hamcrest/BaseMatcherTest.java
// @RunWith(MockitoJUnitRunner.class)
// public abstract class BaseMatcherTest {
// 
//     @Rule
//     public ExpectedException thrown = ExpectedException.none();
// 
//     public static <T> void assertMatches(final String message, final boolean matches) {
//         assertTrue(message, matches);
//     }
// 
//     public static <T> void assertMatches(final boolean matches) {
//         assertMatches("Expected to match, but mismatched", matches);
//     }
// 
//     public static <T> void assertDoesNotMatch(final String message, final boolean matches) {
//         assertFalse(message, matches);
//     }
// 
//     public static <T> void assertDoesNotMatch(final boolean matches) {
//         assertDoesNotMatch("Unexpected matching", matches);
//     }
// 
//     public static void assertIsDescribedTo(final String expectedDescription, final Matcher<?> matcher) {
// 
//         // Act
//         final String actualDescription = descriptionFromMatcher(matcher);
// 
//         // Assert
//         assertThat("Expected description does not match the one returned by the Matcher " + getSimpleName(matcher),
//                 expectedDescription, equalTo(actualDescription));
//     }
// 
//     public static <T> void assertHasMismatchDescription(final String expectedDescription,
//                                                         final Matcher<? super T> matcher, final T matcherArgument) {
// 
//         // Assert
//         assertThat(format("The given matcher has no mismatch with value \"%s\"", matcherArgument),
//                 matcher.matches(matcherArgument), is(false));
// 
//         // Act
//         final String actualMismatchDescription = mismatchDescriptionForMatcherFromArgument(matcher, matcherArgument);
// 
//         // Assert
//         assertThat("Expected mismatch description does not match the one returned by the Matcher "
//                 + getSimpleName(matcher), expectedDescription, equalTo(actualMismatchDescription));
//     }
// 
//     private static String descriptionFromMatcher(final Matcher<?> matcher) {
//         return new StringDescription().appendDescriptionOf(matcher).toString().trim();
//     }
// 
//     protected static <T> String mismatchDescriptionForMatcherFromArgument(final Matcher<? super T> matcher,
//                                                                           final T arg) {
//         final Description description = new StringDescription();
//         matcher.describeMismatch(arg, description);
// 
//         return description.toString().trim();
//     }
// 
//     private static String getSimpleName(final Matcher<?> matcher) {
//         return matcher.getClass().getSimpleName();
//     }
// 
// }
// 
// Path: hamcrest/hamcrest-matchers/src/test/java/it/ozimov/cirneco/hamcrest/date/DateTestUtils.java
// public static Date date(final int year, final int month, final int day, final int hour, final int minute,
//                         final int second, final int millisecond) throws ParseException {
//     final DateTimeZone dateTimeZone = DateTimeZone.forOffsetHours(0);
//     final DateTime dateTime = new DateTime(year, month, day, hour, minute, second, millisecond, dateTimeZone);
// 
//     return new SimpleDateFormat(FORMAT).parse(dateTime.toString(FORMAT));
// }


// Path: hamcrest/hamcrest-matchers/src/test/java/it/ozimov/cirneco/hamcrest/date/IsDateInLeapYearTest.java
import it.ozimov.cirneco.hamcrest.BaseMatcherTest;
import org.hamcrest.Matcher;
import org.junit.Before;
import org.junit.Test;
import java.text.ParseException;
import java.util.Date;
import static it.ozimov.cirneco.hamcrest.date.DateTestUtils.date;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;

package it.ozimov.cirneco.hamcrest.date;




public class IsDateInLeapYearTest extends BaseMatcherTest {

    public Matcher<Date> isLeapYearMatcher;
    public Date leapYear;
    public Date nonLeapYear;