tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

language-model-availability-available-multimodal.tentative.https.window.js (2193B)


      1 // META: title=Language Model Availability Available Multimodal
      2 // META: script=/resources/testdriver.js
      3 // META: script=../resources/util.js
      4 // META: timeout=long
      5 
      6 'use strict';
      7 
      8 // These tests depend on some level of model availability, whereas those in
      9 // language-model-api-availability-available.https.window.js have no availability requirements.
     10 
     11 promise_test(async () => {
     12  await ensureLanguageModel({expectedInputs: [{type: 'audio'}]});
     13 }, 'LanguageModel.availability() is available with multimodal audio option');
     14 
     15 promise_test(async () => {
     16  await ensureLanguageModel({expectedInputs: [{type: 'image'}]});
     17 }, 'LanguageModel.availability() is available with multimodal image option');
     18 
     19 promise_test(async () => {
     20  await ensureLanguageModel({expectedInputs: [{type: 'audio'}, {type: 'image'}]});
     21  const kSupportedCreateOptions = [
     22    { expectedInputs: [{type: 'audio'}] },
     23    { expectedInputs: [{type: 'image'}] },
     24    { expectedInputs: [{type: 'audio'}, {type: 'image'}, {type: 'text'}] },
     25    { expectedInputs: [{type: 'audio', languages: ['en']}] },
     26    { expectedInputs: [{type: 'image', languages: ['en']}] },
     27    { expectedInputs: [{type: 'audio', languages: ['en']},
     28                       {type: 'image', languages: ['en']},
     29                       {type: 'text', languages: ['en']}] },
     30  ];
     31  for (const options of kSupportedCreateOptions) {
     32    const availability = await LanguageModel.availability(options);
     33    assert_in_array(availability, kValidAvailabilities, JSON.stringify(options));
     34  }
     35 }, 'LanguageModel.availability() returns available with supported multimodal options');
     36 
     37 promise_test(async () => {
     38  await ensureLanguageModel({expectedInputs: [{type: 'audio'}, {type: 'image'}]});
     39  const kUnsupportedCreateOptions = [
     40    { expectedInputs: [{type: 'audio', languages: ['unk']}] },  // Language not supported.
     41    { expectedInputs: [{type: 'image', languages: ['unk']}] },  // Language not supported.
     42  ];
     43  for (const options of kUnsupportedCreateOptions) {
     44    assert_equals(await LanguageModel.availability(options), 'unavailable', JSON.stringify(options));
     45  }
     46 }, 'LanguageModel.availability() returns unavailable with unsupported multimodal options');