// Path: core/src/main/java/org/ocpsoft/prettytime/impl/ResourcesTimeFormat.java
// public class ResourcesTimeFormat extends SimpleTimeFormat
// {
//    private final ResourcesTimeUnit unit;
//    private TimeFormat override;
//    private String overrideResourceBundle; // If used this bundle will override the included bundle
// 
//    public ResourcesTimeFormat(ResourcesTimeUnit unit)
//    {
//       this.unit = unit;
//    }
// 
//    public ResourcesTimeFormat(ResourcesTimeUnit unit, String overrideResourceBundle)
//    {
//       this.unit = unit;
//       this.overrideResourceBundle = overrideResourceBundle;
//    }
// 
//    @Override
//    public ResourcesTimeFormat setLocale(Locale locale)
//    {
//       ResourceBundle bundle = null;
//       if (overrideResourceBundle != null) {
//          try {
//             // Attempt to load the bundle that the user passed in, maybe it exists, maybe not
//             bundle = ResourceBundle.getBundle(overrideResourceBundle, locale);
//          }
//          catch (Exception e) {
//             // Throw away if the bundle doesn't contain this local
//          }
//       }
// 
//       // If the bundle doesn't exist then load the default included one
//       if (bundle == null) {
//          bundle = ResourceBundle.getBundle(unit.getResourceBundleName(), locale);
//       }
// 
//       if (bundle instanceof TimeFormatProvider) {
//          TimeFormat format = ((TimeFormatProvider) bundle).getFormatFor(unit);
//          if (format != null) {
//             this.override = format;
//          }
//       }
//       else {
//          override = null;
//       }
// 
//       if (override == null) {
//          setPattern(bundle.getString(unit.getResourceKeyPrefix() + "Pattern"));
//          setFuturePrefix(bundle.getString(unit.getResourceKeyPrefix() + "FuturePrefix"));
//          setFutureSuffix(bundle.getString(unit.getResourceKeyPrefix() + "FutureSuffix"));
//          setPastPrefix(bundle.getString(unit.getResourceKeyPrefix() + "PastPrefix"));
//          setPastSuffix(bundle.getString(unit.getResourceKeyPrefix() + "PastSuffix"));
// 
//          setSingularName(bundle.getString(unit.getResourceKeyPrefix() + "SingularName"));
//          setPluralName(bundle.getString(unit.getResourceKeyPrefix() + "PluralName"));
// 
//          try {
//             setFuturePluralName(bundle.getString(unit.getResourceKeyPrefix() + "FuturePluralName"));
//          }
//          catch (Exception e) {
//          }
//          try {
//             setFutureSingularName((bundle.getString(unit.getResourceKeyPrefix() + "FutureSingularName")));
//          }
//          catch (Exception e) {
//          }
//          try {
//             setPastPluralName((bundle.getString(unit.getResourceKeyPrefix() + "PastPluralName")));
//          }
//          catch (Exception e) {
//          }
//          try {
//             setPastSingularName((bundle.getString(unit.getResourceKeyPrefix() + "PastSingularName")));
//          }
//          catch (Exception e) {
//          }
// 
//       }
// 
//       return this;
//    }
// 
//    @Override
//    public String decorate(Duration duration, String time)
//    {
//       return override == null ? super.decorate(duration, time) : override.decorate(duration, time);
//    }
// 
//    @Override
//    public String decorateUnrounded(Duration duration, String time)
//    {
//       return override == null ? super.decorateUnrounded(duration, time) : override.decorateUnrounded(duration, time);
//    }
// 
//    @Override
//    public String format(Duration duration)
//    {
//       return override == null ? super.format(duration) : override.format(duration);
//    }
// 
//    @Override
//    public String formatUnrounded(Duration duration)
//    {
//       return override == null ? super.formatUnrounded(duration) : override.formatUnrounded(duration);
//    }
// }
// 
// Path: core/src/main/java/org/ocpsoft/prettytime/units/Minute.java
// public class Minute extends ResourcesTimeUnit
// {
// 
//    public Minute()
//    {
//       setMillisPerUnit(1000L * 60L);
//    }
// 
//    @Override
//    protected String getResourceKeyPrefix()
//    {
//       return "Minute";
//    }
// 
// }


import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.ocpsoft.prettytime.impl.ResourcesTimeFormat;
import org.ocpsoft.prettytime.units.Minute;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
        PrettyTime t = new PrettyTime(new Date(0));
        Assert.assertEquals("στιγμές από τώρα", t.format(new Date(600)));
    }

    @Test
    public void testMinutesFromNow() throws Exception {
        PrettyTime t = new PrettyTime(new Date(0));
        Assert.assertEquals("12 λεπτά από τώρα", t.format(new Date(1000 * 60 * 12)));
    }

    @Test
    public void testHoursFromNow() throws Exception {
        PrettyTime t = new PrettyTime(new Date(0));
        Assert.assertEquals("3 ώρες από τώρα", t.format(new Date(1000 * 60 * 60 * 3)));
    }

    @Test
    public void testDaysFromNow() throws Exception {
        PrettyTime t = new PrettyTime(new Date(0));
        Assert.assertEquals("3 ημέρες από τώρα", t.format(new Date(1000 * 60 * 60 * 24 * 3)));
    }

    @Test
    public void testWeeksFromNow() throws Exception {
        PrettyTime t = new PrettyTime(new Date(0));
        Assert.assertEquals("3 εβδομάδες από τώρα", t.format(new Date(1000 * 60 * 60 * 24 * 7 * 3)));
    }

    @Test
    public void testMonthsFromNow() throws Exception {
// Path: core/src/main/java/org/ocpsoft/prettytime/impl/ResourcesTimeFormat.java
// public class ResourcesTimeFormat extends SimpleTimeFormat
// {
//    private final ResourcesTimeUnit unit;
//    private TimeFormat override;
//    private String overrideResourceBundle; // If used this bundle will override the included bundle
// 
//    public ResourcesTimeFormat(ResourcesTimeUnit unit)
//    {
//       this.unit = unit;
//    }
// 
//    public ResourcesTimeFormat(ResourcesTimeUnit unit, String overrideResourceBundle)
//    {
//       this.unit = unit;
//       this.overrideResourceBundle = overrideResourceBundle;
//    }
// 
//    @Override
//    public ResourcesTimeFormat setLocale(Locale locale)
//    {
//       ResourceBundle bundle = null;
//       if (overrideResourceBundle != null) {
//          try {
//             // Attempt to load the bundle that the user passed in, maybe it exists, maybe not
//             bundle = ResourceBundle.getBundle(overrideResourceBundle, locale);
//          }
//          catch (Exception e) {
//             // Throw away if the bundle doesn't contain this local
//          }
//       }
// 
//       // If the bundle doesn't exist then load the default included one
//       if (bundle == null) {
//          bundle = ResourceBundle.getBundle(unit.getResourceBundleName(), locale);
//       }
// 
//       if (bundle instanceof TimeFormatProvider) {
//          TimeFormat format = ((TimeFormatProvider) bundle).getFormatFor(unit);
//          if (format != null) {
//             this.override = format;
//          }
//       }
//       else {
//          override = null;
//       }
// 
//       if (override == null) {
//          setPattern(bundle.getString(unit.getResourceKeyPrefix() + "Pattern"));
//          setFuturePrefix(bundle.getString(unit.getResourceKeyPrefix() + "FuturePrefix"));
//          setFutureSuffix(bundle.getString(unit.getResourceKeyPrefix() + "FutureSuffix"));
//          setPastPrefix(bundle.getString(unit.getResourceKeyPrefix() + "PastPrefix"));
//          setPastSuffix(bundle.getString(unit.getResourceKeyPrefix() + "PastSuffix"));
// 
//          setSingularName(bundle.getString(unit.getResourceKeyPrefix() + "SingularName"));
//          setPluralName(bundle.getString(unit.getResourceKeyPrefix() + "PluralName"));
// 
//          try {
//             setFuturePluralName(bundle.getString(unit.getResourceKeyPrefix() + "FuturePluralName"));
//          }
//          catch (Exception e) {
//          }
//          try {
//             setFutureSingularName((bundle.getString(unit.getResourceKeyPrefix() + "FutureSingularName")));
//          }
//          catch (Exception e) {
//          }
//          try {
//             setPastPluralName((bundle.getString(unit.getResourceKeyPrefix() + "PastPluralName")));
//          }
//          catch (Exception e) {
//          }
//          try {
//             setPastSingularName((bundle.getString(unit.getResourceKeyPrefix() + "PastSingularName")));
//          }
//          catch (Exception e) {
//          }
// 
//       }
// 
//       return this;
//    }
// 
//    @Override
//    public String decorate(Duration duration, String time)
//    {
//       return override == null ? super.decorate(duration, time) : override.decorate(duration, time);
//    }
// 
//    @Override
//    public String decorateUnrounded(Duration duration, String time)
//    {
//       return override == null ? super.decorateUnrounded(duration, time) : override.decorateUnrounded(duration, time);
//    }
// 
//    @Override
//    public String format(Duration duration)
//    {
//       return override == null ? super.format(duration) : override.format(duration);
//    }
// 
//    @Override
//    public String formatUnrounded(Duration duration)
//    {
//       return override == null ? super.formatUnrounded(duration) : override.formatUnrounded(duration);
//    }
// }
// 
// Path: core/src/main/java/org/ocpsoft/prettytime/units/Minute.java
// public class Minute extends ResourcesTimeUnit
// {
// 
//    public Minute()
//    {
//       setMillisPerUnit(1000L * 60L);
//    }
// 
//    @Override
//    protected String getResourceKeyPrefix()
//    {
//       return "Minute";
//    }
// 
// }


// Path: core/src/test/java/org/ocpsoft/prettytime/PrettyTimeI18n_EL_Test.java
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.ocpsoft.prettytime.impl.ResourcesTimeFormat;
import org.ocpsoft.prettytime.units.Minute;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;

        PrettyTime t = new PrettyTime(new Date(0));
        Assert.assertEquals("στιγμές από τώρα", t.format(new Date(600)));
    }

    @Test
    public void testMinutesFromNow() throws Exception {
        PrettyTime t = new PrettyTime(new Date(0));
        Assert.assertEquals("12 λεπτά από τώρα", t.format(new Date(1000 * 60 * 12)));
    }

    @Test
    public void testHoursFromNow() throws Exception {
        PrettyTime t = new PrettyTime(new Date(0));
        Assert.assertEquals("3 ώρες από τώρα", t.format(new Date(1000 * 60 * 60 * 3)));
    }

    @Test
    public void testDaysFromNow() throws Exception {
        PrettyTime t = new PrettyTime(new Date(0));
        Assert.assertEquals("3 ημέρες από τώρα", t.format(new Date(1000 * 60 * 60 * 24 * 3)));
    }

    @Test
    public void testWeeksFromNow() throws Exception {
        PrettyTime t = new PrettyTime(new Date(0));
        Assert.assertEquals("3 εβδομάδες από τώρα", t.format(new Date(1000 * 60 * 60 * 24 * 7 * 3)));
    }

    @Test
    public void testMonthsFromNow() throws Exception {
        PrettyTime t = new PrettyTime(new Date(0));