Package st.gravel.support.compiler

Source Code of st.gravel.support.compiler.IntegerTest

package st.gravel.support.compiler;

import static org.junit.Assert.assertEquals;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import org.junit.Before;
import org.junit.Test;

import st.gravel.support.compiler.testtools.ClassBuilder;
import st.gravel.support.compiler.testtools.TestBootstrap;
import st.gravel.support.jvm.runtime.ImageBootstrapper;
import st.gravel.support.jvm.runtime.MethodTools;

public class IntegerTest {
  @Before
  public void setUp() {
    TestBootstrap.getSingleton();
  }

  @Test
  public void test_Integer_equals() throws Throwable {

    Class stClass = new ClassBuilder("FooObject_Integer_equals").
        method("foo: x equals: y ^x=y").
        method("foo ^self foo: 7 equals: 3+4").
        method("bar ^self foo: 7 equals: 1+2").
        build();

    Object fooObject = stClass.newInstance();
    assertEquals(Boolean.TRUE, MethodTools.perform(fooObject, "foo"));
    assertEquals(Boolean.FALSE,  MethodTools.perform(fooObject, "bar"));
  }

  @Test
  public void test_Integer_identityEquals() throws Throwable {

    Class stClass = new ClassBuilder("FooObject_Integer_identityEquals").
        method("foo: x identityEquals: y ^x==y").
        method("foo ^self foo: 7 identityEquals: 3+4").
        method("bar ^self foo: 7 identityEquals: 1+2").
        build();

    Object fooObject = stClass.newInstance();
    assertEquals(Boolean.TRUE, MethodTools.perform(fooObject, "foo"));
    assertEquals(Boolean.FALSE,  MethodTools.perform(fooObject, "bar"));
  }

  @Test
  public void test_Integer_notEquals() throws Throwable {

    Class stClass = new ClassBuilder("FooObject_Integer_notEquals").
        method("foo: x notEquals: y ^x~=y").
        method("foo ^self foo: 7 notEquals: 3+4").
        method("bar ^self foo: 7 notEquals: 1+2").
        build();

    Object fooObject = stClass.newInstance();
    assertEquals(Boolean.FALSE, MethodTools.perform(fooObject, "foo"));
    assertEquals(Boolean.TRUE,  MethodTools.perform(fooObject, "bar"));
  }

  @Test
  public void test_Integer_notIdentityEquals() throws Throwable {

    Class stClass = new ClassBuilder("FooObject_Integer_notIdentityEquals").
        method("foo: x notIdentityEquals: y ^x~~y").
        method("foo ^self foo: 7 notIdentityEquals: 3+4").
        method("bar ^self foo: 7 notIdentityEquals: 1+2").
        build();

    Object fooObject = stClass.newInstance();
    assertEquals(Boolean.FALSE, MethodTools.perform(fooObject, "foo"));
    assertEquals(Boolean.TRUE,  MethodTools.perform(fooObject, "bar"));
  }

  @Test
  public void testBenchmark() throws Throwable {
    String res = (String) MethodTools.perform(0, "tinyBenchmarks");
    System.out.println(res);
  }
}
TOP

Related Classes of st.gravel.support.compiler.IntegerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.