/*
******************************************************************************
* Copyright (C) 2007, International Business Machines Corporation and        *
* others. All Rights Reserved.                                               *
******************************************************************************
*/

// Copyright 2006 Google Inc.  All Rights Reserved.

package com.ibm.icu.dev.test.duration.languages;

import com.ibm.icu.dev.test.duration.LanguageTestRoot;


/**
 * Test cases for ar_EG
 */
public class Test_ar_EG extends LanguageTestRoot {

  /**
   * Invoke the tests.
   */
  public static void main(String[] args) {
      new Test_ar_EG().run(args);
  }

  /**
   * Constructor.
   */
  public Test_ar_EG() {
    super("ar_EG", false);
  }
}
