# Package com.atlassian.clover.api.optimization

Provides classes to optimize a set of Tests programatically using Clover's Test Optimzation.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Optimizable | A `Optimizable` is an abstraction for things that can be executed for the purpose of testing and can be potentially optimized away by Clover.

- Class Summary
  Class | Description
  --- | ---
  OptimizationOptions |
  OptimizationOptions.Builder | Options for use with the clover `TestOptimizer` class.
  StringOptimizable |
  TestOptimizer | A TestOptimizer allows you to optimize a Collection of classes (that are Tests) programatically.

- Enum Summary
  Enum | Description
  --- | ---
  OptimizationOptions.TestSortOrder |

## Package com.atlassian.clover.api.optimization Description

Provides classes to optimize a set of Tests programatically using Clover's Test Optimzation. A `TestOptimizer` takes an instance of `OptimizationOptions`. `OptimizationOptions` are built and configured using an `OptimizationOptions.Builder`.

## Example

     final Options options = new Options.Builder().snapshot(new File(".clover/clover.snapshot")).build();
     final Collection<Class> optimizedClasses = new TestOptimizer(options).optimize(unoptimizedClasses);
     // optimizedClasses will only contain those tests that cover code that has been modified.

Since:
  2.6.0