1c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer/*
2c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
3c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer *
5c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * This code is free software; you can redistribute it and/or modify it
6c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * under the terms of the GNU General Public License version 2 only, as
7c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * published by the Free Software Foundation.  Oracle designates this
8c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * particular file as subject to the "Classpath" exception as provided
9c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * by Oracle in the LICENSE file that accompanied this code.
10c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer *
11c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * This code is distributed in the hope that it will be useful, but WITHOUT
12c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * version 2 for more details (a copy is included in the LICENSE file that
15c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * accompanied this code).
16c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer *
17c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * You should have received a copy of the GNU General Public License version
18c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * 2 along with this work; if not, write to the Free Software Foundation,
19c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer *
21c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * or visit www.oracle.com if you need additional information or have any
23c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * questions.
24c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer */
25c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauerpackage test.java.time.chrono;
26c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer
27c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauerimport java.time.Duration;
28c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauerimport java.time.chrono.Chronology;
29c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauerimport java.time.chrono.HijrahChronology;
30c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauerimport java.time.chrono.HijrahDate;
31c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauerimport java.time.temporal.ChronoUnit;
32c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauerimport java.util.Set;
33c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer
34c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauerimport org.testng.annotations.Test;
35c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer
36c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer/**
37c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer * Test the speed of initializing all calendars.
38c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer */
39c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauerpublic class TestChronologyPerf {
40c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer
41c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer    @Test
42c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer    public void test_chronologyGetAvailablePerf() {
43c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        long start = System.nanoTime();
44c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        Set<Chronology> chronos = Chronology.getAvailableChronologies();
45c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        long end = System.nanoTime();
46c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        Duration d = Duration.of(end - start, ChronoUnit.NANOS);
47c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        System.out.printf(" Cold Duration of Chronology.getAvailableChronologies(): %s%n", d);
48c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer
49c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        start = System.nanoTime();
50c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        chronos = Chronology.getAvailableChronologies();
51c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        end = System.nanoTime();
52c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        d = Duration.of(end - start, ChronoUnit.NANOS);
53c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        System.out.printf(" Warm Duration of Chronology.getAvailableChronologies(): %s%n", d);
54c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer
55c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        start = System.nanoTime();
56c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        HijrahChronology.INSTANCE.date(1434, 1, 1);
57c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        end = System.nanoTime();
58c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        d = Duration.of(end - start, ChronoUnit.NANOS);
59c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer        System.out.printf(" Warm Duration of HijrahDate.date(1434, 1, 1): %s%n", d);
60c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer    }
61c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer
62c9dd3385ea6f927052783f42fb1282fb093e636eJoachim Sauer}
63