/*
******************************************************************************
* 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 he_IL
 */
public class Test_he_IL extends LanguageTestRoot {
  /**
   * Invoke the tests.
   */
  public static void main(String[] args) {
      new Test_he_IL().run(args);
  }

  /**
   * Constructor.
   */
  public Test_he_IL() {
    super("he_IL", false);
  }
}
