Skip to content
This repository was archived by the owner on Apr 1, 2025. It is now read-only.

Commit 871d13e

Browse files
committed
Merge remote-tracking branch 'origin/main'
2 parents bf362a8 + 6d61cf0 commit 871d13e

File tree

2 files changed

+82
-49
lines changed

2 files changed

+82
-49
lines changed

src/AssemblyAI.UnitTests/TranscriptParamsTests.cs

Lines changed: 59 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -7,60 +7,61 @@ namespace AssemblyAI.UnitTests;
77
[TestFixture]
88
public class TranscriptParamsTests
99
{
10+
private static TranscriptOptionalParams _optionalParams = new()
11+
{
12+
LanguageCode = TranscriptLanguageCode.En,
13+
LanguageDetection = true,
14+
LanguageConfidenceThreshold = 0.9f,
15+
SpeechModel = SpeechModel.Best,
16+
Punctuate = true,
17+
FormatText = true,
18+
Disfluencies = true,
19+
DualChannel = true,
20+
WebhookUrl = "https://example.com/webhook",
21+
WebhookAuthHeaderName = "Webhook-Authorization",
22+
WebhookAuthHeaderValue = "passwords",
23+
AutoHighlights = true,
24+
AudioStartFrom = 10,
25+
AudioEndAt = 360,
26+
WordBoost = ["word"],
27+
BoostParam = TranscriptBoostParam.Default,
28+
FilterProfanity = true,
29+
RedactPii = true,
30+
RedactPiiAudio = true,
31+
RedactPiiAudioQuality = RedactPiiAudioQuality.Mp3,
32+
RedactPiiPolicies = [PiiPolicy.Date, PiiPolicy.Drug],
33+
RedactPiiSub = SubstitutionPolicy.Hash,
34+
SpeakerLabels = true,
35+
SpeakersExpected = 4,
36+
ContentSafety = true,
37+
ContentSafetyConfidence = 90,
38+
IabCategories = true,
39+
CustomSpelling =
40+
[
41+
new TranscriptCustomSpelling
42+
{
43+
From = ["from"],
44+
To = "to"
45+
}
46+
],
47+
SentimentAnalysis = true,
48+
AutoChapters = true,
49+
EntityDetection = true,
50+
SpeechThreshold = 0.9f,
51+
Summarization = true,
52+
SummaryModel = SummaryModel.Catchy,
53+
SummaryType = SummaryType.Bullets,
54+
CustomTopics = true,
55+
Topics = ["topic"]
56+
};
57+
1058
[Test]
1159
public void ShouldMapOptionalToTranscriptParams()
1260
{
13-
var optionalParams = new TranscriptOptionalParams
14-
{
15-
LanguageCode = TranscriptLanguageCode.En,
16-
LanguageDetection = true,
17-
LanguageConfidenceThreshold = 0.9f,
18-
SpeechModel = SpeechModel.Best,
19-
Punctuate = true,
20-
FormatText = true,
21-
Disfluencies = true,
22-
DualChannel = true,
23-
WebhookUrl = "https://example.com/webhook",
24-
WebhookAuthHeaderName = "Webhook-Authorization",
25-
WebhookAuthHeaderValue = "passwords",
26-
AutoHighlights = true,
27-
AudioStartFrom = 10,
28-
AudioEndAt = 360,
29-
WordBoost = ["word"],
30-
BoostParam = TranscriptBoostParam.Default,
31-
FilterProfanity = true,
32-
RedactPii = true,
33-
RedactPiiAudio = true,
34-
RedactPiiAudioQuality = RedactPiiAudioQuality.Mp3,
35-
RedactPiiPolicies = [PiiPolicy.Date, PiiPolicy.Drug],
36-
RedactPiiSub = SubstitutionPolicy.Hash,
37-
SpeakerLabels = true,
38-
SpeakersExpected = 4,
39-
ContentSafety = true,
40-
ContentSafetyConfidence = 90,
41-
IabCategories = true,
42-
CustomSpelling =
43-
[
44-
new TranscriptCustomSpelling
45-
{
46-
From = ["from"],
47-
To = "to"
48-
}
49-
],
50-
SentimentAnalysis = true,
51-
AutoChapters = true,
52-
EntityDetection = true,
53-
SpeechThreshold = 0.9f,
54-
Summarization = true,
55-
SummaryModel = SummaryModel.Catchy,
56-
SummaryType = SummaryType.Bullets,
57-
CustomTopics = true,
58-
Topics = ["topic"]
59-
};
6061
const string audioUrl = "https://example.com/audio.mp3";
61-
var transcriptParams = optionalParams.ToTranscriptParams(audioUrl);
62+
var transcriptParams = _optionalParams.ToTranscriptParams(audioUrl);
6263

63-
var optionalParamsJson = JsonSerializer.SerializeToElement(optionalParams);
64+
var optionalParamsJson = JsonSerializer.SerializeToElement(_optionalParams);
6465
var transcriptParamsJson = JsonSerializer.SerializeToElement(transcriptParams);
6566
foreach(var key in optionalParamsJson.EnumerateObject())
6667
{
@@ -70,4 +71,13 @@ public void ShouldMapOptionalToTranscriptParams()
7071
);
7172
}
7273
}
74+
75+
[Test]
76+
public void ShouldClone()
77+
{
78+
var clonedParams = _optionalParams.Clone();
79+
var paramsJson = JsonSerializer.Serialize(_optionalParams);
80+
var cloneJson = JsonSerializer.Serialize(clonedParams);
81+
Assert.That(paramsJson, Is.EqualTo(cloneJson));
82+
}
7383
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using Riok.Mapperly.Abstractions;
2+
3+
// ReSharper disable CheckNamespace
4+
5+
namespace AssemblyAI.Transcripts;
6+
7+
[Mapper(UseDeepCloning = true)]
8+
internal static partial class TranscriptParamsCloner
9+
{
10+
/// <summary>
11+
/// Deep clone TranscriptParams
12+
/// </summary>
13+
/// <param name="transcriptParams">The params to clone</param>
14+
/// <returns>A deep clone of the params</returns>
15+
public static partial TranscriptParams Clone(this TranscriptParams transcriptParams);
16+
17+
/// <summary>
18+
/// Deep clone TranscriptOptionalParams
19+
/// </summary>
20+
/// <param name="transcriptParams">The params to clone</param>
21+
/// <returns>A deep clone of the params</returns>
22+
public static partial TranscriptOptionalParams Clone(this TranscriptOptionalParams transcriptParams);
23+
}

0 commit comments

Comments
 (0)