mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-11-22 11:12:36 +01:00
A few unit tests + refacts
This commit is contained in:
parent
59adc0f7be
commit
cdc6b2725f
@ -7,7 +7,7 @@ namespace Nikse.SubtitleEdit.Core
|
||||
public static class TextEncodingExtensions
|
||||
{
|
||||
// IANA registered EBCDIC character sets (https://www.iana.org/assignments/character-sets/character-sets.xml)
|
||||
private static readonly HashSet<string> _ebcdicNames = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
||||
private static readonly HashSet<string> EbcdicNames = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
"IBM037", "IBM500", "IBM870", "cp875", "IBM1026", "IBM01140", "IBM01141", "IBM01142", "IBM01143", "IBM01144", "IBM01145", "IBM01146", "IBM01147", "IBM01148", "IBM01149", "IBM273", "IBM277",
|
||||
"IBM278", "IBM280", "IBM284", "IBM285", "IBM290", "IBM297", "IBM420", "IBM423", "IBM424", "x-EBCDIC-KoreanExtended", "IBM-Thai", "IBM871", "IBM880", "IBM905", "cp1025", "IBM01047", "OSD_EBCDIC_DF04_15",
|
||||
@ -27,7 +27,7 @@ namespace Nikse.SubtitleEdit.Core
|
||||
|
||||
public static bool IsEbcdic(this Encoding encoding)
|
||||
{
|
||||
return _ebcdicNames.Contains(encoding.WebName);
|
||||
return EbcdicNames.Contains(encoding.WebName);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -3017,7 +3017,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private bool _editProfileOn = false;
|
||||
private bool _editProfileOn;
|
||||
private void comboBoxRulesProfileName_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
_editProfileOn = true;
|
||||
|
45
src/Test/Core/CharUtilsTest.cs
Normal file
45
src/Test/Core/CharUtilsTest.cs
Normal file
@ -0,0 +1,45 @@
|
||||
using Nikse.SubtitleEdit.Core;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
|
||||
namespace Test.Core
|
||||
{
|
||||
[TestClass]
|
||||
public class CharUtilsTest
|
||||
{
|
||||
[TestMethod]
|
||||
public void IsDigit()
|
||||
{
|
||||
Assert.AreEqual(true, CharUtils.IsDigit('0'));
|
||||
Assert.AreEqual(true, CharUtils.IsDigit('1'));
|
||||
Assert.AreEqual(true, CharUtils.IsDigit('2'));
|
||||
Assert.AreEqual(true, CharUtils.IsDigit('3'));
|
||||
Assert.AreEqual(true, CharUtils.IsDigit('4'));
|
||||
Assert.AreEqual(true, CharUtils.IsDigit('5'));
|
||||
Assert.AreEqual(true, CharUtils.IsDigit('6'));
|
||||
Assert.AreEqual(true, CharUtils.IsDigit('7'));
|
||||
Assert.AreEqual(true, CharUtils.IsDigit('8'));
|
||||
Assert.AreEqual(true, CharUtils.IsDigit('9'));
|
||||
|
||||
Assert.AreEqual(false, CharUtils.IsDigit('.'));
|
||||
Assert.AreEqual(false, CharUtils.IsDigit('A'));
|
||||
Assert.AreEqual(false, CharUtils.IsDigit(' '));
|
||||
Assert.AreEqual(false, CharUtils.IsDigit('z'));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void IsEnglishAlphabet()
|
||||
{
|
||||
Assert.AreEqual(true, CharUtils.IsEnglishAlphabet('a'));
|
||||
Assert.AreEqual(true, CharUtils.IsEnglishAlphabet('b'));
|
||||
Assert.AreEqual(true, CharUtils.IsEnglishAlphabet('z'));
|
||||
Assert.AreEqual(true, CharUtils.IsEnglishAlphabet('A'));
|
||||
Assert.AreEqual(true, CharUtils.IsEnglishAlphabet('Y'));
|
||||
Assert.AreEqual(true, CharUtils.IsEnglishAlphabet('Z'));
|
||||
|
||||
Assert.AreEqual(false, CharUtils.IsEnglishAlphabet('æ'));
|
||||
Assert.AreEqual(false, CharUtils.IsEnglishAlphabet('ü'));
|
||||
Assert.AreEqual(false, CharUtils.IsEnglishAlphabet('2'));
|
||||
Assert.AreEqual(false, CharUtils.IsEnglishAlphabet('!'));
|
||||
}
|
||||
}
|
||||
}
|
@ -38,12 +38,12 @@ namespace Test.Core
|
||||
{
|
||||
var parser = new SeJsonParser();
|
||||
var result = parser.GetAllTagsByNameAsStrings("{" + Environment.NewLine +
|
||||
"\"name\":\"John\"," + Environment.NewLine +
|
||||
"\"age\":30," + Environment.NewLine +
|
||||
"\"cars\": [" + Environment.NewLine +
|
||||
"{ \"name\":\"Ford\", \"content\":\"Fiesta\" }," + Environment.NewLine +
|
||||
"{ \"name\":\"BMW\", \"content\": \"X3\"}," + Environment.NewLine +
|
||||
"{ \"name\":\"Fiat\", \"content\": \"500\" } ]}", "content");
|
||||
"\"name\":\"John\"," + Environment.NewLine +
|
||||
"\"age\":30," + Environment.NewLine +
|
||||
"\"cars\": [" + Environment.NewLine +
|
||||
"{ \"name\":\"Ford\", \"content\":\"Fiesta\" }," + Environment.NewLine +
|
||||
"{ \"name\":\"BMW\", \"content\": \"X3\"}," + Environment.NewLine +
|
||||
"{ \"name\":\"Fiat\", \"content\": \"500\" } ]}", "content");
|
||||
Assert.AreEqual("Fiesta", result[0]);
|
||||
Assert.AreEqual("X3", result[1]);
|
||||
Assert.AreEqual("500", result[2]);
|
||||
@ -80,5 +80,98 @@ namespace Test.Core
|
||||
var result = parser.GetAllTagsByNameAsStrings("[{ \"content\" : null }]", "content");
|
||||
Assert.AreEqual("null", result[0]);
|
||||
}
|
||||
|
||||
|
||||
[TestMethod]
|
||||
public void GetArrayElementsByName_Simple()
|
||||
{
|
||||
var parser = new SeJsonParser();
|
||||
var result = parser.GetArrayElementsByName("{ \"items\": [ { \"name\" : \"Joe1\" },{ \"name\" : \"Joe2\" } ] }", "items");
|
||||
Assert.AreEqual(2, result.Count);
|
||||
Assert.AreEqual("{ \"name\" : \"Joe1\" }", result[0].Trim());
|
||||
Assert.AreEqual("{ \"name\" : \"Joe2\" }", result[1].Trim());
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void GetArrayElementsByName_Simple_Compact()
|
||||
{
|
||||
var parser = new SeJsonParser();
|
||||
var result = parser.GetArrayElementsByName("{\"items\":[{\"name\":\"Joe1\"},{\"name\":\"Joe2\"}]}", "items");
|
||||
Assert.AreEqual(2, result.Count);
|
||||
Assert.AreEqual("{\"name\":\"Joe1\"}", result[0].Trim());
|
||||
Assert.AreEqual("{\"name\":\"Joe2\"}", result[1].Trim());
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void GetArrayElementsByName_Empty_Array()
|
||||
{
|
||||
var parser = new SeJsonParser();
|
||||
var result = parser.GetArrayElementsByName("{ \"start_time\": \"118.64\", \"items\": [] }", "items");
|
||||
Assert.AreEqual(1, result.Count);
|
||||
Assert.AreEqual("", result[0].Trim());
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void GetArrayElementsByName_Advanced()
|
||||
{
|
||||
var parser = new SeJsonParser();
|
||||
var result = parser.GetArrayElementsByName(@"{
|
||||
'results': {
|
||||
'transcripts': [
|
||||
{
|
||||
'transcript': 'em águas brasileiras estão achado mais antigo que o homem. Pré sal pré sal começa a se formar há mais de cem milhões de Jonas com Regina. Salas ainda habitavam até os postos são de altíssima produtividade. As grandes reservas de petróleo foram descobertas em dois mil e seis. Dois anos depois, o Brasil já começava a produzir petróleo retirado do pré sal. E hoje, quando a gente olha para trás, era muito desconhecido. Já são dez anos, vem sendo desafios para isso. As equipes contam com tecnologia especialmente desenvolvida para o pré sal. Muitas soluções saíram do Centro de Pesquisas da Petrobras Cenpes, no Rio de Janeiro. Aqui, pesquisadores inventaram técnicas que não existiam no mercado, coisa que o geofísico desenvolveram técnicas de processamento muito especial de matemática pesada. Para tentar mostrar de maneira mais óbvia onde estava roxa de pessoal, a área do pré sal fica a trezentos quilômetros da costa que vai do Espírito Santo a Santa Catarina, uma extensão de oitocentos quilômetros. O petróleo está a sete mil metros de profundidade, abaixo de uma espessa camada de sal, que funciona como um sino. Ao contrário do que muita gente acha que o petróleo tem, piscinas, debaixo do Mar Petróleo se aloja nesses buracos nessas horas, muitas dessas rochas estão no fundo da Bacia de Santos, no litoral de São Paulo. Metade da produção de petróleo que a gente tem aqui no Brasil já vem do pré sal, e um terço do gás que é consumido pelo Brasil também vem do pré sal. Então, se a gente não tivesse descoberto e desenvolvido essa tecnologia toda para poder operar as plataformas, hoje a gente estaria muito mais dependente do mercado externo. A jornada do conhecimento da tecnologia trouxe para a Petrobras a inovação que certamente para nós, hoje são ativos, são mais importantes do que o petróleo.'
|
||||
}
|
||||
],
|
||||
'speaker_labels': {
|
||||
'speakers': 4,
|
||||
'segments': [
|
||||
{
|
||||
'start_time': '5.17',
|
||||
'speaker_label': 'spk_0',
|
||||
'end_time': '9.25',
|
||||
'items': [
|
||||
{
|
||||
'start_time': '5.17',
|
||||
'speaker_label': 'spk_0',
|
||||
'end_time': '5.37'
|
||||
},
|
||||
{
|
||||
'start_time': '105.54',
|
||||
'speaker_label': 'spk_1',
|
||||
'end_time': '106.09'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
'items': [
|
||||
{
|
||||
'start_time': '5.17',
|
||||
'end_time': '5.37',
|
||||
'alternatives': [
|
||||
{
|
||||
'confidence': '0.9999',
|
||||
'content': 'em'
|
||||
}
|
||||
],
|
||||
'type': 'pronunciation'
|
||||
},
|
||||
{
|
||||
'start_time': '5.37',
|
||||
'end_time': '5.67',
|
||||
'alternatives': [
|
||||
{
|
||||
'confidence': '0.9999',
|
||||
'content': 'águas'
|
||||
}
|
||||
],
|
||||
'type': 'pronunciation'
|
||||
}
|
||||
]
|
||||
},
|
||||
'status': 'COMPLETED'
|
||||
}".Replace('\'', '"'), "items");
|
||||
Assert.AreEqual(4, result.Count);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -45,6 +45,7 @@
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Core\CharUtilsTest.cs" />
|
||||
<Compile Include="Core\SeJsonParserTest.cs" />
|
||||
<Compile Include="Core\FixCasingTest.cs" />
|
||||
<Compile Include="Core\LanguageAutoDetectTest.cs" />
|
||||
|
Loading…
Reference in New Issue
Block a user