Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
using Omika.App.Local.Models;
|
||||
|
||||
namespace Omika.Tests.Mobile;
|
||||
|
||||
/// <summary>
|
||||
/// Tests des conventions de génération lues dans <c>config.json</c>.
|
||||
///
|
||||
/// <para>
|
||||
/// Les valeurs reproduisent deux modèles réels : <c>opus-mt-es-fr</c>
|
||||
/// (départ 74821, fin 0) et <c>opus-mt-tc-big-itc-itc</c> (départ 35282, fin
|
||||
/// 29158). Aucune ne correspond aux identifiants du fichier <c>.spm</c>, que le
|
||||
/// moteur utilisait jusqu'ici.
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public class ConfigurationModeleTests
|
||||
{
|
||||
[Fact]
|
||||
public void DepuisJson_LitLesIdentifiantsDuModele()
|
||||
{
|
||||
const string json = """
|
||||
{
|
||||
"decoder_start_token_id": 35282,
|
||||
"eos_token_id": 29158,
|
||||
"pad_token_id": 35282,
|
||||
"model_type": "marian"
|
||||
}
|
||||
""";
|
||||
|
||||
ConfigurationModele? configuration = ConfigurationModele.DepuisJson(json);
|
||||
|
||||
Assert.NotNull(configuration);
|
||||
Assert.Equal(35282, configuration.IdDebutDecodeur);
|
||||
Assert.Equal(29158, configuration.IdFin);
|
||||
Assert.Equal(35282, configuration.IdRemplissage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DepuisJson_FinAZero_EstUneValeurValide()
|
||||
{
|
||||
// 0 est un identifiant parfaitement légitime : sur opus-mt-es-fr, c'est
|
||||
// </s>. Le confondre avec « absent » ferait générer jusqu'à la limite.
|
||||
const string json = """{ "decoder_start_token_id": 74821, "eos_token_id": 0 }""";
|
||||
|
||||
ConfigurationModele? configuration = ConfigurationModele.DepuisJson(json);
|
||||
|
||||
Assert.NotNull(configuration);
|
||||
Assert.Equal(0, configuration.IdFin);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DepuisJson_CleAbsente_ResteNulle()
|
||||
{
|
||||
ConfigurationModele? configuration = ConfigurationModele.DepuisJson("""{ "eos_token_id": 29158 }""");
|
||||
|
||||
Assert.NotNull(configuration);
|
||||
Assert.Null(configuration.IdDebutDecodeur);
|
||||
Assert.Equal(29158, configuration.IdFin);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(null)]
|
||||
[InlineData("")]
|
||||
[InlineData("[]")]
|
||||
[InlineData("null")]
|
||||
public void DepuisJson_ContenuSansObjet_EstTraiteCommeAbsent(string? json)
|
||||
{
|
||||
Assert.Null(ConfigurationModele.DepuisJson(json));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DepuisJson_ValeurNonNumerique_EstIgnoree()
|
||||
{
|
||||
const string json = """{ "eos_token_id": "29158", "pad_token_id": -5 }""";
|
||||
|
||||
ConfigurationModele? configuration = ConfigurationModele.DepuisJson(json);
|
||||
|
||||
Assert.NotNull(configuration);
|
||||
Assert.Null(configuration.IdFin);
|
||||
Assert.Null(configuration.IdRemplissage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DepuisJson_JsonInvalide_EstRefuse()
|
||||
{
|
||||
Assert.Throws<FormatException>(() => ConfigurationModele.DepuisJson("{ pas du json"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user