1. What is FRUIT?

FRUIT is FORTRAN Unit Test Framework, written in FORTRAN 95.

FRUIT has assertion, fixture, setup, teardown, report, spec, driver generation and uses Rake (Ruby build utility) as build tool.

FRUIT core is written in FORTRAN , so one can use it without need of installing any additional software.

2. Requirements

2.1. FRUIT (FORTRAN only)

2.2. FRUIT (FORTRAN + Ruby)

3. FRUIT Fortran only vs FRUIT Fortran + Ruby

FRUIT Fortran only

  • Good for small project
  • Good if you do not need setup and teardown subroutines (otherwise you need to create and maintain additional basket file)
  • You will need to reate test driver on your own

FRUIT Fortran + Ruby

  • Good for complex projects
  • Good if you need setup and teardown subroutines
  • Needs Ruby interpreter
  • You will need only to point test and source files in CMakeLists files

4. Types of subroutines

  • assert - a state of belief. If assert fails your test will also fail (eg. assert_equals(1,2) will fail because 1!=2). Assert is core root of all unit tests.
  • setup - subroutine called before every test subroutine. It can be used to initialize variables.
  • teardown - subroutine called after every test subroutine. It can be used to clean after test.

5. Avaivable subroutunes

subroutines:
	assert_equals
	assert_not_equals
	assert_true
	assert_false
	setup
	teardown

!examples with different types:

!integers and reals
	assert_equals(a,b)
	assert_equals(a,b,"Message when assert fails")
	assert_not_equals(a,b)
	assert_not_equals(a,b,"Message when assert fails") 

!NOTE: "Message when assert fails" is optional

!reals with tolerance 
	assert_equals(a,b,tolerance)

!booleans and expressions
	assert_true(expression)
	assert_false(expression)

!strings
	assert_equals("abc","abc")
	assert_not_equals("abc","abc")