codeflash-internal/cli/code-to-optimize
HeshamHM28 8e90c9e140
Add Java code optimization demo with Gradle and JUnit 4/5 (#2369)
## Summary
Added Java code optimization demonstration project to
`cli/code-to-optimize/`

- Set up Gradle build system with dual JUnit support (JUnit 4 and JUnit
5)
- Created three classes with common optimization opportunities:
- **StringProcessor**: String concatenation and manipulation
inefficiencies
- **CollectionProcessor**: Collection operations with performance issues
  - **DataCalculator**: Algorithm optimization opportunities
- Added comprehensive test suite with 20+ tests
- All tests passing with `./gradlew test`

## Code Optimization Opportunities

### StringProcessor
- String concatenation in loops (O(n²) → O(n) with StringBuilder)
- Multiple intermediate String objects
- Repeated substring operations

### CollectionProcessor
- ArrayList.contains() lookups (O(n²) → O(n) with HashSet)
- Multiple collection passes (can be single pass)
- Inefficient recursive implementations

### DataCalculator
- Fibonacci without memoization (O(2ⁿ) → O(n) with DP)
- Prime checking inefficiency (O(n) → O(√n))
- Simple power modulo (can use fast exponentiation)

## Project Structure
```
cli/code-to-optimize/
├── build.gradle (JUnit 4 & 5 configured)
├── settings.gradle
├── README.md
├── gradlew (executable)
├── gradle/wrapper/
└── src/
    ├── main/java/com/example/optimization/
    │   ├── StringProcessor.java
    │   ├── CollectionProcessor.java
    │   └── DataCalculator.java
    └── test/java/com/example/optimization/
        ├── StringProcessorTest.java (JUnit 5)
        ├── CollectionProcessorTest.java (JUnit 4)
        └── DataCalculatorTest.java (JUnit 5)
```

## Test Coverage
- JUnit 5 tests for StringProcessor and DataCalculator (with
parameterized tests)
- JUnit 4 tests for CollectionProcessor
- Both frameworks working together via JUnit Vintage Engine
- 20+ test cases covering all optimization scenarios

## Running Tests
```bash
cd cli/code-to-optimize
./gradlew test      # Run all tests
./gradlew build     # Build the project
```

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Ubuntu <ubuntu@ip-172-31-39-200.ec2.internal>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-04 11:03:54 -08:00
..
gradle/wrapper Add Java code optimization demo with Gradle and JUnit 4/5 (#2369) 2026-02-04 11:03:54 -08:00
src Add Java code optimization demo with Gradle and JUnit 4/5 (#2369) 2026-02-04 11:03:54 -08:00
build.gradle Add Java code optimization demo with Gradle and JUnit 4/5 (#2369) 2026-02-04 11:03:54 -08:00
gradlew Add Java code optimization demo with Gradle and JUnit 4/5 (#2369) 2026-02-04 11:03:54 -08:00
settings.gradle Add Java code optimization demo with Gradle and JUnit 4/5 (#2369) 2026-02-04 11:03:54 -08:00