CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes45downloads
modalityDefaults.test.ts279 linesDownload Raw Back to core
1/**2 * @license3 * Copyright 2025 Qwen Team4 * SPDX-License-Identifier: Apache-2.05 */6 7import { describe, it, expect } from 'vitest';8import { defaultModalities } from './modalityDefaults.js';9 10describe('defaultModalities', () => {11  describe('Google Gemini', () => {12    it('returns full multimodal for gemini-3-pro', () => {13      expect(defaultModalities('gemini-3-pro-preview')).toEqual({14        image: true,15        pdf: true,16        audio: true,17        video: true,18      });19    });20 21    it('returns full multimodal for gemini-3-flash', () => {22      expect(defaultModalities('gemini-3-flash-preview')).toEqual({23        image: true,24        pdf: true,25        audio: true,26        video: true,27      });28    });29 30    it('returns full multimodal for gemini-3.1-pro', () => {31      expect(defaultModalities('gemini-3.1-pro-preview')).toEqual({32        image: true,33        pdf: true,34        audio: true,35        video: true,36      });37    });38 39    it('returns full multimodal for gemini-2.5-pro', () => {40      expect(defaultModalities('gemini-2.5-pro')).toEqual({41        image: true,42        pdf: true,43        audio: true,44        video: true,45      });46    });47 48    it('returns full multimodal for gemini-1.5-flash', () => {49      expect(defaultModalities('gemini-1.5-flash')).toEqual({50        image: true,51        pdf: true,52        audio: true,53        video: true,54      });55    });56  });57 58  describe('OpenAI', () => {59    it('returns image for gpt-5.2', () => {60      const m = defaultModalities('gpt-5.2');61      expect(m.image).toBe(true);62      expect(m.audio).toBeUndefined();63      expect(m.pdf).toBeUndefined();64      expect(m.video).toBeUndefined();65    });66 67    it('returns image for gpt-5-mini', () => {68      expect(defaultModalities('gpt-5-mini').image).toBe(true);69    });70 71    it('returns image for gpt-4o', () => {72      expect(defaultModalities('gpt-4o').image).toBe(true);73    });74 75    it('returns image for o3', () => {76      expect(defaultModalities('o3').image).toBe(true);77    });78  });79 80  describe('Anthropic Claude', () => {81    it('returns image + pdf for claude-opus-4-6', () => {82      const m = defaultModalities('claude-opus-4-6');83      expect(m.image).toBe(true);84      expect(m.pdf).toBe(true);85      expect(m.audio).toBeUndefined();86      expect(m.video).toBeUndefined();87    });88 89    it('returns image + pdf for claude-sonnet-4-6', () => {90      const m = defaultModalities('claude-sonnet-4-6');91      expect(m.image).toBe(true);92      expect(m.pdf).toBe(true);93    });94 95    it('returns image + pdf for claude-sonnet-4', () => {96      const m = defaultModalities('claude-sonnet-4');97      expect(m.image).toBe(true);98      expect(m.pdf).toBe(true);99    });100 101    it('returns image + pdf for claude-3.5-sonnet', () => {102      const m = defaultModalities('claude-3.5-sonnet');103      expect(m.image).toBe(true);104      expect(m.pdf).toBe(true);105    });106  });107 108  describe('Qwen', () => {109    it('returns image + video for qwen-vl-max', () => {110      const m = defaultModalities('qwen-vl-max');111      expect(m.image).toBe(true);112      expect(m.video).toBe(true);113      expect(m.pdf).toBeUndefined();114      expect(m.audio).toBeUndefined();115    });116 117    it('returns image + video for qwen3-vl-plus', () => {118      const m = defaultModalities('qwen3-vl-plus');119      expect(m.image).toBe(true);120      expect(m.video).toBe(true);121    });122 123    it('returns text-only for qwen3-coder-plus', () => {124      expect(defaultModalities('qwen3-coder-plus')).toEqual({});125    });126 127    it('returns image + video for coder-model (same as qwen3.5-plus)', () => {128      expect(defaultModalities('coder-model')).toEqual({129        image: true,130        video: true,131      });132    });133 134    it('returns image + video for qwen3.5-plus', () => {135      const m = defaultModalities('qwen3.5-plus');136      expect(m.image).toBe(true);137      expect(m.video).toBe(true);138      expect(m.pdf).toBeUndefined();139      expect(m.audio).toBeUndefined();140    });141 142    it('returns image + video for qwen3.7-plus', () => {143      const m = defaultModalities('qwen3.7-plus');144      expect(m.image).toBe(true);145      expect(m.video).toBe(true);146      expect(m.pdf).toBeUndefined();147      expect(m.audio).toBeUndefined();148    });149 150    it('returns text-only for qwen3.7-max', () => {151      expect(defaultModalities('qwen3.7-max')).toEqual({});152    });153 154    it('returns image + video for qwen3.6-35b variants', () => {155      const m = defaultModalities('qwen3.6-35b-a3b-nvfp4');156      expect(m.image).toBe(true);157      expect(m.video).toBe(true);158      expect(m.pdf).toBeUndefined();159      expect(m.audio).toBeUndefined();160    });161 162    it('returns text-only for qwen-turbo', () => {163      expect(defaultModalities('qwen-turbo')).toEqual({});164    });165  });166 167  describe('DeepSeek', () => {168    it('returns text-only for deepseek-chat', () => {169      expect(defaultModalities('deepseek-chat')).toEqual({});170    });171 172    it('returns text-only for deepseek-reasoner', () => {173      expect(defaultModalities('deepseek-reasoner')).toEqual({});174    });175  });176 177  describe('Zhipu GLM', () => {178    it('returns image for glm-4.5v', () => {179      const m = defaultModalities('glm-4.5v');180      expect(m.image).toBe(true);181      expect(m.pdf).toBeUndefined();182    });183 184    it('returns text-only for glm-5', () => {185      expect(defaultModalities('glm-5')).toEqual({});186    });187 188    it('returns text-only for glm-4.7', () => {189      expect(defaultModalities('glm-4.7')).toEqual({});190    });191  });192 193  describe('MiniMax', () => {194    it('returns image + video for MiniMax-M3', () => {195      const m = defaultModalities('MiniMax-M3');196      expect(m.image).toBe(true);197      expect(m.video).toBe(true);198      expect(m.pdf).toBeUndefined();199      expect(m.audio).toBeUndefined();200    });201 202    it('returns text-only for MiniMax-M2.5', () => {203      expect(defaultModalities('MiniMax-M2.5')).toEqual({});204    });205  });206 207  describe('Kimi', () => {208    it('returns image + video for kimi-k2.5', () => {209      const m = defaultModalities('kimi-k2.5');210      expect(m.image).toBe(true);211      expect(m.video).toBe(true);212      expect(m.pdf).toBeUndefined();213      expect(m.audio).toBeUndefined();214    });215 216    it('returns text-only for kimi-k2', () => {217      expect(defaultModalities('kimi-k2')).toEqual({});218    });219  });220 221  describe('ByteDance Doubao', () => {222    it('returns image for doubao-seed-2.0-pro (issue #4876)', () => {223      const m = defaultModalities('doubao-seed-2.0-pro');224      expect(m.image).toBe(true);225      expect(m.video).toBeUndefined();226      expect(m.audio).toBeUndefined();227    });228 229    it('returns image for doubao-seed-1.6', () => {230      expect(defaultModalities('doubao-seed-1.6').image).toBe(true);231    });232 233    it('returns image for doubao-1.5-vision-pro', () => {234      expect(defaultModalities('doubao-1.5-vision-pro').image).toBe(true);235    });236 237    it('returns image for doubao-vision', () => {238      expect(defaultModalities('doubao-vision').image).toBe(true);239    });240 241    it('returns text-only for doubao-seedance (text→video generation model)', () => {242      expect(defaultModalities('doubao-seedance-1.0-pro')).toEqual({});243    });244 245    it('returns text-only for doubao-seedream (text→image generation model)', () => {246      expect(defaultModalities('doubao-seedream-3.0')).toEqual({});247    });248 249    it('returns text-only for doubao-pro-32k', () => {250      expect(defaultModalities('doubao-pro-32k')).toEqual({});251    });252 253    it('returns text-only for doubao-lite-4k', () => {254      expect(defaultModalities('doubao-lite-4k')).toEqual({});255    });256  });257 258  describe('unknown models', () => {259    it('returns text-only for unrecognized models', () => {260      expect(defaultModalities('some-random-model-xyz')).toEqual({});261    });262  });263 264  describe('normalization', () => {265    it('normalizes provider prefixes', () => {266      expect(defaultModalities('openai/gpt-4o')).toEqual(267        defaultModalities('gpt-4o'),268      );269    });270 271    it('returns a fresh copy each time', () => {272      const a = defaultModalities('gemini-2.5-pro');273      const b = defaultModalities('gemini-2.5-pro');274      expect(a).toEqual(b);275      expect(a).not.toBe(b);276    });277  });278});279 
basant307/AI_Governance_Project · CoolFace