/*
******************************************************************************
* 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 zh_Hans_SG
 */
public class Test_zh_Hans_SG extends LanguageTestRoot {

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

  /**
   * Constructor.
   */
  public Test_zh_Hans_SG() {
    super("zh_Hans_SG", false);
  }
}
