import org.junit.Test ;
import org.junit.runner.JUnitCore ;
import org.junit.runner.Result ;
import org.junit.runner.notification.Failure ;
import static org.junit .Assert .*;
class SimpleTest {
@Test
public void testAddition( ) {
int result = 2 + 2 ;
assertEquals( 4 , result) ;
}
@Test
public void testSubtraction( ) {
int result = 5 - 3 ;
assertEquals( 2 , result) ;
}
@Test
public void testMultiplication( ) {
int result = 4 * 3 ;
assertEquals( 12 , result) ;
}
@Test
public void testDivision( ) {
double result = 10 / 2 ;
assertEquals( 5.0 , result, 0.0001 ) ; // third parameter is the delta for floating-point comparison
}
}
class Main {
public static void main
( String [ ] args
) { Result result = JUnitCore.runClasses ( SimpleTest.class ) ;
for ( Failure failure : result.getFailures ( ) ) {
System .
out .
println ( failure.
toString ( ) ) ; }
if ( result.wasSuccessful ( ) ) {
System .
out .
println ( "All tests passed!" ) ; }
}
}
aW1wb3J0IG9yZy5qdW5pdC5UZXN0OwppbXBvcnQgb3JnLmp1bml0LnJ1bm5lci5KVW5pdENvcmU7CmltcG9ydCBvcmcuanVuaXQucnVubmVyLlJlc3VsdDsKaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXIubm90aWZpY2F0aW9uLkZhaWx1cmU7CmltcG9ydCBzdGF0aWMgb3JnLmp1bml0LkFzc2VydC4qOwoKY2xhc3MgU2ltcGxlVGVzdCB7CgogICAgQFRlc3QKICAgIHB1YmxpYyB2b2lkIHRlc3RBZGRpdGlvbigpIHsKICAgICAgICBpbnQgcmVzdWx0ID0gMiArIDI7CiAgICAgICAgYXNzZXJ0RXF1YWxzKDQsIHJlc3VsdCk7CiAgICB9CgogICAgQFRlc3QKICAgIHB1YmxpYyB2b2lkIHRlc3RTdWJ0cmFjdGlvbigpIHsKICAgICAgICBpbnQgcmVzdWx0ID0gNSAtIDM7CiAgICAgICAgYXNzZXJ0RXF1YWxzKDIsIHJlc3VsdCk7CiAgICB9CgogICAgQFRlc3QKICAgIHB1YmxpYyB2b2lkIHRlc3RNdWx0aXBsaWNhdGlvbigpIHsKICAgICAgICBpbnQgcmVzdWx0ID0gNCAqIDM7CiAgICAgICAgYXNzZXJ0RXF1YWxzKDEyLCByZXN1bHQpOwogICAgfQoKICAgIEBUZXN0CiAgICBwdWJsaWMgdm9pZCB0ZXN0RGl2aXNpb24oKSB7CiAgICAgICAgZG91YmxlIHJlc3VsdCA9IDEwIC8gMjsKICAgICAgICBhc3NlcnRFcXVhbHMoNS4wLCByZXN1bHQsIDAuMDAwMSk7IC8vIHRoaXJkIHBhcmFtZXRlciBpcyB0aGUgZGVsdGEgZm9yIGZsb2F0aW5nLXBvaW50IGNvbXBhcmlzb24KICAgIH0KfQoKY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgUmVzdWx0IHJlc3VsdCA9IEpVbml0Q29yZS5ydW5DbGFzc2VzKFNpbXBsZVRlc3QuY2xhc3MpOwogICAgICAgIGZvciAoRmFpbHVyZSBmYWlsdXJlIDogcmVzdWx0LmdldEZhaWx1cmVzKCkpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGZhaWx1cmUudG9TdHJpbmcoKSk7CiAgICAgICAgfQogICAgICAgIGlmIChyZXN1bHQud2FzU3VjY2Vzc2Z1bCgpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQWxsIHRlc3RzIHBhc3NlZCEiKTsKICAgICAgICB9CiAgICB9Cn0K