Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

graders.test.ts 2.4 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
  1. import { getGraderById } from '../../src/redteam/graders';
  2. import { AsciiSmugglingGrader } from '../../src/redteam/plugins/asciiSmuggling';
  3. import { BeavertailsGrader } from '../../src/redteam/plugins/beavertails';
  4. import { HarmfulGrader } from '../../src/redteam/plugins/harmful/graders';
  5. import { PlinyGrader } from '../../src/redteam/plugins/pliny';
  6. import { ToolDiscoveryGrader } from '../../src/redteam/plugins/toolDiscovery';
  7. import { ToolDiscoveryMultiTurnGrader } from '../../src/redteam/plugins/toolDiscoveryMultiTurn';
  8. import { UnsafeBenchGrader } from '../../src/redteam/plugins/unsafebench';
  9. describe('getGraderById', () => {
  10. it('should return correct grader for valid ID', () => {
  11. const asciiGrader = getGraderById('promptfoo:redteam:ascii-smuggling');
  12. expect(asciiGrader).toBeInstanceOf(AsciiSmugglingGrader);
  13. const beavertailsGrader = getGraderById('promptfoo:redteam:beavertails');
  14. expect(beavertailsGrader).toBeInstanceOf(BeavertailsGrader);
  15. const harmfulGrader = getGraderById('promptfoo:redteam:harmful');
  16. expect(harmfulGrader).toBeInstanceOf(HarmfulGrader);
  17. const toolDiscoveryGrader = getGraderById('promptfoo:redteam:tool-discovery');
  18. expect(toolDiscoveryGrader).toBeInstanceOf(ToolDiscoveryGrader);
  19. const toolDiscoveryMultiTurnGrader = getGraderById(
  20. 'promptfoo:redteam:tool-discovery:multi-turn',
  21. );
  22. expect(toolDiscoveryMultiTurnGrader).toBeInstanceOf(ToolDiscoveryMultiTurnGrader);
  23. const unsafebenchGrader = getGraderById('promptfoo:redteam:unsafebench');
  24. expect(unsafebenchGrader).toBeInstanceOf(UnsafeBenchGrader);
  25. const plinyGrader = getGraderById('promptfoo:redteam:pliny');
  26. expect(plinyGrader).toBeInstanceOf(PlinyGrader);
  27. });
  28. it('should return harmful grader for IDs starting with promptfoo:redteam:harmful', () => {
  29. const specificHarmfulGrader = getGraderById('promptfoo:redteam:harmful:specific-type');
  30. expect(specificHarmfulGrader).toBeInstanceOf(HarmfulGrader);
  31. const anotherHarmfulGrader = getGraderById('promptfoo:redteam:harmful-with-suffix');
  32. expect(anotherHarmfulGrader).toBeInstanceOf(HarmfulGrader);
  33. });
  34. it('should return undefined for invalid ID', () => {
  35. const invalidGrader = getGraderById('invalid-id');
  36. expect(invalidGrader).toBeUndefined();
  37. });
  38. it('should return undefined for empty ID', () => {
  39. const emptyGrader = getGraderById('');
  40. expect(emptyGrader).toBeUndefined();
  41. });
  42. });
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...