const TdPrompt = require('../lib/td-prompt.js');
const GeminiClient = require('../src/genkit-client.js');
const GenkitModels = require('../src/genkit-models.js');

const { before, describe, it } = require('mocha');
const assert = require('assert');

// Define the API models to test and report
const apiModels = [
    {model: GenkitModels.gemini20Flash, apiKey: process.env.GEMINI_API_KEY},
    {model: GenkitModels.gemini20FlashLite, apiKey: process.env.GEMINI_API_KEY},
    // ... other models that you want to evaluate
    {model: GenkitModels.gemini25ProPreview0325, apiKey: process.env.GEMINI_API_KEY},
];

let geminiClient;

// TdPrompt will run and benchmark the scenarios
(new TdPrompt(apiModels)).benchmark(function (params) {
    describe(`Hello world arithmetic scenario - evaluating ${params?.model}${params?.format ? (' format:'+params.format+'') : ''}`, function () {

        // Setup current model from the list
        before(async function () {
            geminiClient = new GeminiClient(params.apiKey, params.model);
        });

        it('should compute an arithmetic operation and return the total', async function () {
            // ...
        });

        it('should multiply the result by 10', async function () {
            // ...
        });

        it('should divide the result by 4', async function () {
            // ...
        });
    });
});