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');