/* * Copyright (c) 2012 Denis Solonenko. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v2.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ package ru.orangesoftware.financisto2.test.recur; import android.test.AndroidTestCase; import android.util.Log; import java.util.Date; import java.util.List; import ru.orangesoftware.financisto2.recur.Recurrence; import ru.orangesoftware.financisto2.test.builders.DateTime; import static ru.orangesoftware.financisto2.test.builders.DateTime.date; /** * Created by IntelliJ IDEA. * User: Denis Solonenko * Date: 2/18/11 7:15 PM */ public class RecurrencePerformanceTest extends AndroidTestCase { public void test_should_generate_scheduled_times_for_specific_period() throws Exception { String dailyPattern = "2011-08-02T21:40:00~DAILY:interval@1#~INDEFINETELY:null"; generateDates(dailyPattern, date(2011, 8, 1)); generateDates(dailyPattern, date(2011, 9, 2)); generateDates(dailyPattern, date(2011, 12, 2)); generateDates(dailyPattern, date(2012, 9, 2)); generateDates(dailyPattern, date(2014, 9, 2)); generateDates(dailyPattern, date(2016, 9, 2)); } private List<Date> generateDates(String pattern, DateTime date) { long start = date.atMidnight().asLong(); long end = date.atDayEnd().asLong(); long t0 = System.currentTimeMillis(); try { Recurrence r = Recurrence.parse(pattern); return r.generateDates(new Date(start), new Date(end)); } finally { long t1 = System.currentTimeMillis(); Log.i("RecurrencePerformanceTest", "Generated "+start+"-"+end+": "+(t1-t0)+"ms"); } } }