// Path: src/main/java/org/dmfs/rfc5545/recur/RecurrenceRule.java
// public enum RfcMode
// {
//     /**
//      * Parses recurrence rules according to <a href="http://tools.ietf.org/html/rfc2445#section-4.3.10">RFC 2445</a>. Every error will cause an exception to
//      * be thrown.
//      */
//     RFC2445_STRICT,
// 
//     /**
//      * Parses recurrence rules according to <a href="http://tools.ietf.org/html/rfc2445#section-4.3.10">RFC 2445</a> in a more tolerant way. The parser will
//      * just skip invalid parts in the rule and won't complain as long as the result is a valid rule. <p> This mode also accepts rules that comply with <a
//      * href="http://tools.ietf.org/html/rfc5545#section-3.3.10">RFC 5545</a>. </p> <p> <strong>Note:</strong> Using this mode rules are evaluated
//      * differently than with {@link #RFC5545_LAX}. {@link #RFC5545_LAX} will just drop all invalid parts and evaluate the rule according to RFC 5545. This
//      * mode will evaluate all rules. <p> Also this mode will output rules that comply with RFC 2445. </p>
//      */
//     RFC2445_LAX,
// 
//     /**
//      * Parses recurrence rules according to <a href="http://tools.ietf.org/html/rfc5545#section-3.3.10">RFC 5545</a>. Every error will cause an exception to
//      * be thrown.
//      */
//     RFC5545_STRICT,
// 
//     /**
//      * Parses recurrence rules according to <a href="http://tools.ietf.org/html/rfc5545#section-3.3.10">RFC 5545</a> in a more tolerant way. The parser will
//      * just skip invalid parts in the rule and won't complain as long as the result is a valid rule. <p> This mode also accepts rules that comply with <a
//      * href="http://tools.ietf.org/html/rfc2445#section-4.3.10">RFC 2445</a> but not with RFC 5545. </p> <p> <strong>Note:</strong> Using this mode rules
//      * are evaluated differently than with {@link #RFC2445_LAX}. This mode will just drop all invalid parts and evaluate the rule according to RFC 5545.
//      * {@link #RFC2445_LAX} will evaluate all rules. <p> Also this mode will output rules that comply with RFC 5545. </p>
//      */
//     RFC5545_LAX;
// }


import org.dmfs.rfc5545.DateTime;
import org.dmfs.rfc5545.recur.RecurrenceRule.RfcMode;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/*
 * Copyright (C) 2013 Marten Gajda <marten@dmfs.org>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */

package org.dmfs.rfc5545.recur;





public class TestRule
{
    public final String rule;
    public int count = -1;
    public DateTime until = null;
    public Set<Integer> months = null;
    public Set<Integer> weekdays = null;
    public Set<Integer> monthdays = null;
    public Set<Integer> weeks = null;
    public Set<Integer> hours = null;
    public Set<Integer> minutes = null;
    public Set<Integer> seconds = null;
    public boolean floating = false;
    public boolean allday = false;
    public DateTime start = null;
    public DateTime iterationStart = null;
    public int instances = -1;
    public boolean printInstances = false;
// Path: src/main/java/org/dmfs/rfc5545/recur/RecurrenceRule.java
// public enum RfcMode
// {
//     /**
//      * Parses recurrence rules according to <a href="http://tools.ietf.org/html/rfc2445#section-4.3.10">RFC 2445</a>. Every error will cause an exception to
//      * be thrown.
//      */
//     RFC2445_STRICT,
// 
//     /**
//      * Parses recurrence rules according to <a href="http://tools.ietf.org/html/rfc2445#section-4.3.10">RFC 2445</a> in a more tolerant way. The parser will
//      * just skip invalid parts in the rule and won't complain as long as the result is a valid rule. <p> This mode also accepts rules that comply with <a
//      * href="http://tools.ietf.org/html/rfc5545#section-3.3.10">RFC 5545</a>. </p> <p> <strong>Note:</strong> Using this mode rules are evaluated
//      * differently than with {@link #RFC5545_LAX}. {@link #RFC5545_LAX} will just drop all invalid parts and evaluate the rule according to RFC 5545. This
//      * mode will evaluate all rules. <p> Also this mode will output rules that comply with RFC 2445. </p>
//      */
//     RFC2445_LAX,
// 
//     /**
//      * Parses recurrence rules according to <a href="http://tools.ietf.org/html/rfc5545#section-3.3.10">RFC 5545</a>. Every error will cause an exception to
//      * be thrown.
//      */
//     RFC5545_STRICT,
// 
//     /**
//      * Parses recurrence rules according to <a href="http://tools.ietf.org/html/rfc5545#section-3.3.10">RFC 5545</a> in a more tolerant way. The parser will
//      * just skip invalid parts in the rule and won't complain as long as the result is a valid rule. <p> This mode also accepts rules that comply with <a
//      * href="http://tools.ietf.org/html/rfc2445#section-4.3.10">RFC 2445</a> but not with RFC 5545. </p> <p> <strong>Note:</strong> Using this mode rules
//      * are evaluated differently than with {@link #RFC2445_LAX}. This mode will just drop all invalid parts and evaluate the rule according to RFC 5545.
//      * {@link #RFC2445_LAX} will evaluate all rules. <p> Also this mode will output rules that comply with RFC 5545. </p>
//      */
//     RFC5545_LAX;
// }


// Path: src/test/java/org/dmfs/rfc5545/recur/TestRule.java
import org.dmfs.rfc5545.DateTime;
import org.dmfs.rfc5545.recur.RecurrenceRule.RfcMode;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

/*
 * Copyright (C) 2013 Marten Gajda <marten@dmfs.org>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */

package org.dmfs.rfc5545.recur;





public class TestRule
{
    public final String rule;
    public int count = -1;
    public DateTime until = null;
    public Set<Integer> months = null;
    public Set<Integer> weekdays = null;
    public Set<Integer> monthdays = null;
    public Set<Integer> weeks = null;
    public Set<Integer> hours = null;
    public Set<Integer> minutes = null;
    public Set<Integer> seconds = null;
    public boolean floating = false;
    public boolean allday = false;
    public DateTime start = null;
    public DateTime iterationStart = null;
    public int instances = -1;
    public boolean printInstances = false;
    public static final RfcMode defaultMode = RfcMode.RFC5545_LAX;