<commit_before># PitchCar Track Generator

Generates all possible tracks, or a single random valid track, for
[PitchCar](https://boardgamegeek.com/boardgame/150/pitchcar)

## Rules:
* Tracks will always begin with a straight piece
* Tracks must not overlap
* Tracks must form a complete look
* Track must not already have been found as a rotation

## Usage:
### Generate all possible tracks
```ruby
require_relative 'finder.rb'
# tracks = Pitchcar::Finder.find_tracks(STRAIGHT_PIECES, LEFT_RIGHT_PIECES)
tracks = Pitchcar::Finder.find_tracks(6, 10)
tracks.first.to_s # => 'SSSSLSLSLRRLLRLL'
```

All possible values for a basic PitchCar set (10 curves, 6 straight pieces)
are provided in `pitchcar_tracks`

### Find a random valid track
```ruby
require_relative 'finder.rb'
# track = Pitchcar::Finder.random_valid_track(STRAIGHT_PIECES, LEFT_RIGHT_PIECES)
track = Pitchcar::Finder.random_valid_track(6, 10)
track.to_s # => 'SSSLRLLRLLRSSLSL'<commit_msg>Update README to reflect new public interface<commit_after># PitchCar Track Generator

Generates all possible tracks, or a single random valid track, for
[PitchCar](https://boardgamegeek.com/boardgame/150/pitchcar)

## Rules:
* Tracks will always begin with a straight piece
* Tracks must not overlap
* Tracks must form a complete look
* Track must not already have been found as a rotation

## Usage:
### Generate all possible tracks
```ruby
require_relative 'finder.rb'
# tracks = Pitchcar::Finder.find_all_tracks(STRAIGHT_PIECES, LEFT_RIGHT_PIECES)
tracks = Pitchcar::Finder.find_all_tracks(6, 10)
tracks.first.to_s # => 'SSSSLSLSLRRLLRLL'
```

All possible values for a basic PitchCar set (10 curves, 6 straight pieces)
are provided in `pitchcar_tracks`

### Find a random valid track
```ruby
require_relative 'finder.rb'
# track = Pitchcar::Finder.random_valid_track(STRAIGHT_PIECES, LEFT_RIGHT_PIECES)
track = Pitchcar::Finder.random_valid_track(6, 10)
track.to_s # => 'SSSLRLLRLLRSSLSL'
{'fraction_non_alphanumeric': 0.0986639260020555, 'fraction_numerical': 0.012332990750256937, 'mean_word_length': 6.18450184501845, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '552051', 'n_tokens_mistral': 678, 'n_tokens_neox': 635, 'n_words': 193}