public void TesteRemoverChaveExistenteEDeixarOutras() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("nomes", 1980, "Carlos")); Assert.IsTrue(hc.Add("nomes", 1980, "Willian")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Craujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Braujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Araujo")); Assert.IsTrue(hc.Add("carro", 7854, "Fusca")); Assert.IsTrue(hc.Add("carro", 9515, "Gol")); Assert.IsTrue(hc.Add("carro", 3456, "Opala")); Assert.IsTrue(hc.Add("jogos", 7654, "Futebol")); Assert.IsTrue(hc.Add("jogos", 3474, "gude")); Assert.IsTrue(hc.Add("jogos", 7895, "ping pong")); Assert.IsTrue(hc.Remove("jogos")); var retorno = hc.Get("nomes", 0, 0); Assert.AreEqual(retorno.Count, 6); retorno = hc.Get("carro", 0, 0); Assert.AreEqual(retorno.Count, 3); retorno = hc.Get("jogos", 0, 0); Assert.AreEqual(retorno.Count, 0); // Tentar remover novamente Assert.IsFalse(hc.Remove("jogos")); }
public void TesteInserirElementosEmChavesDiferentesComSubIndexIguais() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "pedro")); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "maria")); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "joao")); Assert.IsTrue(hc.Add("cidades", 1980, "pedro")); Assert.IsTrue(hc.Add("cidades", 1980, "maria")); Assert.IsTrue(hc.Add("cidades", 1980, "joao")); var retornoGet = hc.Get("ano.nascimento", 0, 0); Assert.AreEqual(retornoGet.Count(), 3); Assert.AreEqual(retornoGet[0], "joao"); Assert.AreEqual(retornoGet[1], "maria"); Assert.AreEqual(retornoGet[2], "pedro"); retornoGet = hc.Get("cidades", 0, 0); Assert.AreEqual(retornoGet.Count(), 3); Assert.AreEqual(retornoGet[0], "joao"); Assert.AreEqual(retornoGet[1], "maria"); Assert.AreEqual(retornoGet[2], "pedro"); var retorno = hc.RetornoApoioTeste(); // Qtd de chaves Assert.AreEqual(retorno.Count, 2); // Chave ano.nasc var anoNasc = retorno.First(s => s.Key == "ano.nascimento"); Assert.AreEqual(anoNasc.Value.Count, 1); // Apenas um subIndice Assert.IsTrue(anoNasc.Value.Any(s => s.Key == 1980)); // subIndices de anoNasc var siAnoNasc = anoNasc.Value.First().Value; Assert.IsTrue(siAnoNasc.Any(s => s == "pedro")); Assert.IsTrue(siAnoNasc.Any(s => s == "maria")); Assert.IsTrue(siAnoNasc.Any(s => s == "joao")); // Chave cidades var cidades = retorno.First(s => s.Key == "cidades"); Assert.AreEqual(cidades.Value.Count, 1); // Apenas um subIndice Assert.IsTrue(cidades.Value.Any(s => s.Key == 1980)); // subIndices de cidades var siCidades = cidades.Value.First().Value; Assert.IsTrue(siCidades.Any(s => s == "pedro")); Assert.IsTrue(siCidades.Any(s => s == "maria")); Assert.IsTrue(siCidades.Any(s => s == "joao")); }
public void TesteInserirElementosNoMesmoSubIndex() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "pedro")); Assert.IsFalse(hc.Add("ano.nascimento", 1981, "pedro")); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "joao")); var retorno = hc.Get("ano.nascimento", 0, 0); Assert.AreEqual(retorno.Count(), 2); Assert.AreEqual(retorno[0], "joao"); Assert.AreEqual(retorno[1], "pedro"); var RetornoApoioTeste = hc.RetornoApoioTeste(); Assert.AreEqual(RetornoApoioTeste.Count, 1); Assert.AreEqual(RetornoApoioTeste.First().Key, "ano.nascimento"); // Verificar quantidade de subIndex deve ser 2. Assert.AreEqual(RetornoApoioTeste.First().Value.Count, 2); var subIndex1980 = RetornoApoioTeste.First().Value.First(s => s.Key == 1980); Assert.AreEqual(subIndex1980.Value.Count, 1); Assert.AreEqual(subIndex1980.Value.First(), "joao"); var subIndex1981 = RetornoApoioTeste.First().Value.First(s => s.Key == 1981); Assert.AreEqual(subIndex1981.Value.Count, 1); Assert.AreEqual(subIndex1981.Value.First(), "pedro"); }
public void TesteInserirElementosNoMesmoEDiferenteSubIndex() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "pedro")); Assert.IsFalse(hc.Add("ano.nascimento", 1981, "pedro")); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "joao")); Assert.IsTrue(hc.Add("ano.nascimento", 1982, "paulo")); var retornoGet = hc.Get("ano.nascimento", 0, 0); Assert.AreEqual(retornoGet.Count(), 3); Assert.AreEqual(retornoGet[0], "joao"); // 1980 Assert.AreEqual(retornoGet[1], "pedro"); // 1981 Assert.AreEqual(retornoGet[2], "paulo"); // 1982 var retorno = hc.RetornoApoioTeste(); Assert.AreEqual(retorno.Count, 1); var sub1980 = retorno.First().Value.First(s => s.Key == 1980); Assert.AreEqual(sub1980.Value.Count, 1); Assert.AreEqual(sub1980.Value.First(), "joao"); var sub1981 = retorno.First().Value.First(s => s.Key == 1981); Assert.AreEqual(sub1981.Value.Count, 1); Assert.AreEqual(sub1981.Value.First(), "pedro"); var sub1982 = retorno.First().Value.First(s => s.Key == 1982); Assert.AreEqual(sub1982.Value.Count, 1); Assert.AreEqual(sub1982.Value.First(), "paulo"); }
public void TesteRemoverChaveESubIndexComOutrosExistentes() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("nomes", 1980, "Carlos")); Assert.IsTrue(hc.Add("nomes", 1980, "Willian")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Craujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Braujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Araujo")); Assert.IsTrue(hc.Add("nomes", 2000, "Fusca")); Assert.IsTrue(hc.Add("nomes", 2000, "Gol")); Assert.IsTrue(hc.Add("nomes", 2000, "Opala")); Assert.IsTrue(hc.Add("nomes", 8885, "Futebol")); Assert.IsTrue(hc.Add("nomes", 8885, "gude")); Assert.IsTrue(hc.Add("nomes", 8885, "ping pong")); Assert.IsTrue(hc.RemoveValuesFromSubIndex("nomes", 2000)); var retorno = hc.Get("nomes", 0, 0); Assert.AreEqual(retorno.Count, 9); }
public void TesteBuscarComMaisChavesExistentesSubDiferentes() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("nomes", 48, "Carlos")); Assert.IsTrue(hc.Add("nomes", 8563, "Willian")); Assert.IsTrue(hc.Add("nomes", 2487, "Cristiano")); Assert.IsTrue(hc.Add("nomes", 885, "Cristiano Craujo")); Assert.IsTrue(hc.Add("nomes", 7446, "Cristiano Braujo")); Assert.IsTrue(hc.Add("nomes", 9866, "Cristiano Araujo")); Assert.IsTrue(hc.Add("carro", 7854, "Fusca")); Assert.IsTrue(hc.Add("carro", 9515, "Gol")); Assert.IsTrue(hc.Add("carro", 3456, "Opala")); Assert.IsTrue(hc.Add("jogos", 7654, "Futebol")); Assert.IsTrue(hc.Add("jogos", 3474, "gude")); Assert.IsTrue(hc.Add("jogos", 7895, "ping pong")); string[] compareNomes = { "Cristiano Craujo", "Cristiano", "Cristiano Braujo" }; string[] compareCarro = { "Fusca", "Gol" }; string[] compareJogos = { "Futebol", "ping pong" }; var retorno = hc.Get("nomes", 1, 3); Assert.AreEqual(retorno.Count, 3); Parallel.For(0, 3, i => { Assert.AreEqual(retorno[i], compareNomes[i]); }); retorno = hc.Get("carro", 1, 3); Assert.AreEqual(retorno.Count, 2); Parallel.For(0, 2, i => { Assert.AreEqual(retorno[i], compareCarro[i]); }); retorno = hc.Get("jogos", 1, 2); Assert.AreEqual(retorno.Count, 2); Parallel.For(0, 2, i => { Assert.AreEqual(retorno[i], compareJogos[i]); }); }
public void TesteBuscarComMaisChavesExistentesSubIguais() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("nomes", 1980, "Carlos")); Assert.IsTrue(hc.Add("nomes", 1980, "Willian")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Craujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Braujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Araujo")); Assert.IsTrue(hc.Add("carro", 1980, "Gol")); Assert.IsTrue(hc.Add("carro", 1980, "Parati")); Assert.IsTrue(hc.Add("carro", 1980, "Fusion")); Assert.IsTrue(hc.Add("jogos", 1980, "dama")); Assert.IsTrue(hc.Add("jogos", 1980, "Futebol")); Assert.IsTrue(hc.Add("jogos", 1980, "Basquete")); string[] compareNomes = { "Cristiano", "Cristiano Araujo", "Cristiano Braujo" }; string[] compareCarro = { "Gol", "Parati" }; string[] compareJogos = { "dama", "Futebol" }; var retorno = hc.Get("nomes", 1, 3); Assert.AreEqual(retorno.Count, 3); Parallel.For(0, 3, i => { Assert.AreEqual(retorno[i], compareNomes[i]); }); retorno = hc.Get("carro", 1, 3); Parallel.For(0, 2, i => { Assert.AreEqual(retorno[i], compareCarro[i]); }); retorno = hc.Get("jogos", 1, 3); Parallel.For(0, 2, i => { Assert.AreEqual(retorno[i], compareJogos[i]); }); }
public void TestarOrdenacaoDeChaves() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("cidades", 2001, "Goiás")); Assert.IsTrue(hc.Add("países", 1982, "BR")); Assert.IsTrue(hc.Add("bairros", 1980, "Atheneu")); Assert.IsTrue(hc.Add("nomes", 1981, "Mercia")); var retorno = hc.RetornoApoioTeste(); string[] compare = { "bairros", "cidades", "nomes", "países" }; var retornoGet = hc.Get("cidades", 0, 0); Assert.AreEqual(retornoGet.Count(), 1); Assert.AreEqual(retornoGet[0], "Goiás"); retornoGet = hc.Get("países", 0, 0); Assert.AreEqual(retornoGet.Count(), 1); Assert.AreEqual(retornoGet[0], "BR"); retornoGet = hc.Get("bairros", 0, 0); Assert.AreEqual(retornoGet.Count(), 1); Assert.AreEqual(retornoGet[0], "Atheneu"); retornoGet = hc.Get("nomes", 0, 0); Assert.AreEqual(retornoGet.Count(), 1); Assert.AreEqual(retornoGet[0], "Mercia"); // Qtd de chaves Assert.AreEqual(retorno.Count, 4); var tam = retorno.First().Value.Count; Parallel.For(0, tam, i => { Assert.AreEqual(retorno[0].Key, compare[i]); }); }
public void TesteInserirElementosMaisSubIndex() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "pedro")); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "maria")); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "joao")); Assert.IsFalse(hc.Add("ano.nascimento", 2000, "pedro")); Assert.IsFalse(hc.Add("ano.nascimento", 2000, "maria")); Assert.IsFalse(hc.Add("ano.nascimento", 2000, "joao")); Assert.IsFalse(hc.Add("ano.nascimento", 2015, "pedro")); Assert.IsFalse(hc.Add("ano.nascimento", 2015, "maria")); Assert.IsFalse(hc.Add("ano.nascimento", 2015, "joao")); Assert.IsFalse(hc.Add("ano.nascimento", 2020, "pedro")); Assert.IsFalse(hc.Add("ano.nascimento", 2020, "maria")); Assert.IsFalse(hc.Add("ano.nascimento", 2020, "joao")); var retornoGet = hc.Get("ano.nascimento", 0, 0); Assert.AreEqual(retornoGet.Count(), 3); Assert.AreEqual(retornoGet[0], "joao"); Assert.AreEqual(retornoGet[1], "maria"); Assert.AreEqual(retornoGet[2], "pedro"); var retorno = hc.RetornoApoioTeste(); Assert.AreEqual(retorno.First().Key, "ano.nascimento"); Assert.AreEqual(retorno.First().Value.Count, 4); //subIndx 1980 var si1980 = retorno.First().Value.First(s => s.Key == 1980); Assert.AreEqual(si1980.Value.Count, 0); //subIndx 2000 var si2000 = retorno.First().Value.First(s => s.Key == 2000); Assert.AreEqual(si2000.Value.Count, 0); //subIndx 2015 var si2015 = retorno.First().Value.First(s => s.Key == 2015); Assert.AreEqual(si2015.Value.Count, 0); //subIndx 2020 var si2020 = retorno.First().Value.First(s => s.Key == 2020); Assert.AreEqual(si2020.Value.Count, 3); Assert.IsTrue(si2020.Value.Any(s => s == "pedro")); Assert.IsTrue(si2020.Value.Any(s => s == "joao")); Assert.IsTrue(si2020.Value.Any(s => s == "maria")); }
public void TesteRemoverChaveESubIndex() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("nomes", 1980, "Carlos")); Assert.IsTrue(hc.Add("nomes", 1980, "Willian")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Craujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Braujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Araujo")); Assert.IsTrue(hc.RemoveValuesFromSubIndex("nomes", 1980)); var retorno = hc.Get("nomes", 0, 0); Assert.AreEqual(retorno.Count, 0); }
public void TesteRemoverChaveNaoExistente() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("nomes", 1980, "Carlos")); Assert.IsTrue(hc.Add("nomes", 1980, "Willian")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Craujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Braujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Araujo")); Assert.IsFalse(hc.Remove("chaves")); var retorno = hc.Get("nomes", 0, 0); Assert.AreEqual(retorno.Count, 6); }
public void TesteRetornarIndexElementoComUmSubIndice() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("nomes", 1980, "Carlos")); Assert.IsTrue(hc.Add("nomes", 1980, "Willian")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Craujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Braujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Araujo")); var retorno = hc.Get("nomes", 0, 0); // nao esquecer de considerar a ordenação. Assert.AreEqual(hc.IndexOf("nomes", "willian"), 5); Assert.AreEqual(hc.IndexOf("nomes", "Cristiano Araujo"), 2); Assert.AreEqual(hc.IndexOf("nomes", "carlos"), 0); }
public void TestarBuscarRegistrosComStartNegativo1() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("nomes", 1980, "Carlos")); Assert.IsTrue(hc.Add("nomes", 1980, "Willian")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Craujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Braujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Araujo")); var retorno = hc.Get("nomes", -1, 0); string[] compare = { "Carlos", "Cristiano", "Cristiano Araujo", "Cristiano Braujo", "Cristiano Craujo", "Willian" }; Assert.AreEqual(retorno.Count, 6); Parallel.For(0, 6, i => { Assert.AreEqual(retorno[i], compare[i]); }); }
public void TestarBuscarRegistrosComOffSetComUmSubIndice() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("nomes", 1980, "Carlos")); Assert.IsTrue(hc.Add("nomes", 1980, "Willian")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Craujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Braujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Araujo")); var retorno = hc.Get("nomes", 1, 3); string[] compare = { "Cristiano", "Cristiano Araujo", "Cristiano Braujo" }; Assert.AreEqual(retorno.Count, 3); Parallel.For(0, 3, i => { Assert.AreEqual(retorno[i], compare[i]); }); }
public void TesteInserirElementosSubIndex() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "pedro")); Assert.IsFalse(hc.Add("ano.nascimento", 1980, "pedro")); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "joao")); var retornoGet = hc.Get("ano.nascimento", 0, 0); Assert.AreEqual(retornoGet.Count(), 2); Assert.AreEqual(retornoGet[0], "joao"); Assert.AreEqual(retornoGet[1], "pedro"); var retorno = hc.RetornoApoioTeste(); Assert.AreEqual(retorno.First().Key, "ano.nascimento"); var subIndx = retorno.First().Value.First(); Assert.IsTrue(subIndx.Value.Any(s => s == "pedro")); Assert.IsTrue(subIndx.Value.Any(s => s == "joao")); }
public void TestarBuscarRegistrosComEndNegativo() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("nomes", 1980, "Carlos")); Assert.IsTrue(hc.Add("nomes", 1980, "Willian")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Craujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Braujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Araujo")); var retorno = hc.Get("nomes", 0, -1); string[] compare = { "Carlos", "Cristiano", "Cristiano Araujo", "Cristiano Braujo", "Cristiano Craujo", "Willian" }; Assert.AreEqual(retorno.Count, 6); Parallel.For(0, 6, i => { Assert.AreEqual(retorno[i], compare[i]); }); // -2 retorno = hc.Get("nomes", 0, -2); Assert.AreEqual(retorno.Count, 5); Parallel.For(0, 5, i => { Assert.AreEqual(retorno[i], compare[i]); }); // -3 retorno = hc.Get("nomes", 0, -3); Assert.AreEqual(retorno.Count, 4); Parallel.For(0, 4, i => { Assert.AreEqual(retorno[i], compare[i]); }); // -4 retorno = hc.Get("nomes", 0, -4); Assert.AreEqual(retorno.Count, 3); Parallel.For(0, 3, i => { Assert.AreEqual(retorno[i], compare[i]); }); // -5 retorno = hc.Get("nomes", 0, -5); Assert.AreEqual(retorno.Count, 2); Parallel.For(0, 2, i => { Assert.AreEqual(retorno[i], compare[i]); }); // -6 retorno = hc.Get("nomes", 0, -6); Assert.AreEqual(retorno.Count, 1); Parallel.For(0, 1, i => { Assert.AreEqual(retorno[i], compare[i]); }); // -7 retorno = hc.Get("nomes", 0, -7); Assert.AreEqual(retorno.Count, 0); // -8 retorno = hc.Get("nomes", 0, -8); Assert.AreEqual(retorno.Count, 6); Parallel.For(0, 6, i => { Assert.AreEqual(retorno[i], compare[i]); }); }
public void TesteInserirElementosDiferentesMaisSubIndex() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "pedro")); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "maria")); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "joao")); Assert.IsTrue(hc.Add("ano.nascimento", 2000, "wagner")); Assert.IsTrue(hc.Add("ano.nascimento", 2000, "eros")); Assert.IsTrue(hc.Add("ano.nascimento", 2000, "arthur")); Assert.IsTrue(hc.Add("ano.nascimento", 2015, "layane")); Assert.IsTrue(hc.Add("ano.nascimento", 2015, "lidia")); Assert.IsTrue(hc.Add("ano.nascimento", 2015, "pai")); Assert.IsTrue(hc.Add("ano.nascimento", 2020, "cachorro")); Assert.IsTrue(hc.Add("ano.nascimento", 2020, "ford")); Assert.IsTrue(hc.Add("ano.nascimento", 2020, "focus")); string[] compare = { "joao", "maria", "pedro", "arthur", "eros", "wagner", "layane", "lidia", "pai", "cachorro", "focus", "ford" }; var retornoGet = hc.Get("ano.nascimento", 0, 0); Assert.AreEqual(retornoGet.Count(), 12); Parallel.For(0, retornoGet.Count, i => { Assert.AreEqual(retornoGet[i], compare[i]); }); var retorno = hc.RetornoApoioTeste(); Assert.AreEqual(retorno.First().Key, "ano.nascimento"); Assert.AreEqual(retorno.First().Value.Count, 4); //subIndx 1980 var si1980 = retorno.First().Value.First(s => s.Key == 1980); Assert.AreEqual(si1980.Value.Count, 3); Assert.IsTrue(si1980.Value.Any(s => s == "pedro")); Assert.IsTrue(si1980.Value.Any(s => s == "joao")); Assert.IsTrue(si1980.Value.Any(s => s == "maria")); //subIndx 2000 var si2000 = retorno.First().Value.First(s => s.Key == 2000); Assert.AreEqual(si2000.Value.Count, 3); Assert.IsTrue(si2000.Value.Any(s => s == "wagner")); Assert.IsTrue(si2000.Value.Any(s => s == "eros")); Assert.IsTrue(si2000.Value.Any(s => s == "arthur")); //subIndx 2015 var si2015 = retorno.First().Value.First(s => s.Key == 2015); Assert.AreEqual(si2015.Value.Count, 3); Assert.IsTrue(si2015.Value.Any(s => s == "layane")); Assert.IsTrue(si2015.Value.Any(s => s == "lidia")); Assert.IsTrue(si2015.Value.Any(s => s == "pai")); //subIndx 2020 var si2020 = retorno.First().Value.First(s => s.Key == 2020); Assert.AreEqual(si2020.Value.Count, 3); Assert.IsTrue(si2020.Value.Any(s => s == "cachorro")); Assert.IsTrue(si2020.Value.Any(s => s == "ford")); Assert.IsTrue(si2020.Value.Any(s => s == "focus")); }
public void TesteInserirElementosEmChavesDiferentesComSubIndexDiferentes() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("ano.nascimento", 1980, "pedro")); Assert.IsTrue(hc.Add("ano.nascimento", 1981, "maria")); Assert.IsTrue(hc.Add("ano.nascimento", 1982, "joao")); Assert.IsTrue(hc.Add("cidades", 2000, "anapolis")); Assert.IsTrue(hc.Add("cidades", 2001, "goiania")); Assert.IsTrue(hc.Add("cidades", 2002, "florianopolis")); Assert.IsTrue(hc.Add("carros", 8000, "focus")); Assert.IsTrue(hc.Add("carros", 8001, "mustang")); Assert.IsTrue(hc.Add("carros", 8002, "fusion")); Assert.IsTrue(hc.Add("jogos", 5000, "basquete")); Assert.IsTrue(hc.Add("jogos", 5001, "futebol")); Assert.IsTrue(hc.Add("jogos", 5002, "voley")); var retornoGet = hc.Get("ano.nascimento", 0, 0); Assert.AreEqual(retornoGet.Count(), 3); Assert.AreEqual(retornoGet[0], "pedro"); // 80 Assert.AreEqual(retornoGet[1], "maria"); // 81 Assert.AreEqual(retornoGet[2], "joao"); // 82 retornoGet = hc.Get("cidades", 0, 0); Assert.AreEqual(retornoGet.Count(), 3); Assert.AreEqual(retornoGet[0], "anapolis"); // 00 Assert.AreEqual(retornoGet[1], "goiania"); // 01 Assert.AreEqual(retornoGet[2], "florianopolis"); // 02 retornoGet = hc.Get("carros", 0, 0); Assert.AreEqual(retornoGet.Count(), 3); Assert.AreEqual(retornoGet[0], "focus"); Assert.AreEqual(retornoGet[1], "mustang"); Assert.AreEqual(retornoGet[2], "fusion"); retornoGet = hc.Get("jogos", 0, 0); Assert.AreEqual(retornoGet.Count(), 3); Assert.AreEqual(retornoGet[0], "basquete"); Assert.AreEqual(retornoGet[1], "futebol"); Assert.AreEqual(retornoGet[2], "voley"); var retorno = hc.RetornoApoioTeste(); // Qtd de chaves Assert.AreEqual(retorno.Count, 4); // Chave ano.nasc var anoNasc = retorno.First(s => s.Key == "ano.nascimento"); Assert.AreEqual(anoNasc.Value.Count, 3); Assert.IsTrue(anoNasc.Value.Any(s => s.Key == 1980)); Assert.IsTrue(anoNasc.Value.Any(s => s.Key == 1981)); Assert.IsTrue(anoNasc.Value.Any(s => s.Key == 1982)); // nenhum diferente destes 3. Assert.AreEqual(anoNasc.Value.Count(s => s.Key != 1980 && s.Key != 1981 && s.Key != 1982), 0); // verifica o valor de cada subIndice. Assert.AreEqual(anoNasc.Value.First(s => s.Key == 1980).Value.First(), "pedro"); Assert.AreEqual(anoNasc.Value.First(s => s.Key == 1981).Value.First(), "maria"); Assert.AreEqual(anoNasc.Value.First(s => s.Key == 1982).Value.First(), "joao"); // verifica que cada subIndice tem apenas um valor Assert.AreEqual(anoNasc.Value.First(s => s.Key == 1980).Value.Count, 1); Assert.AreEqual(anoNasc.Value.First(s => s.Key == 1981).Value.Count, 1); Assert.AreEqual(anoNasc.Value.First(s => s.Key == 1982).Value.Count, 1); // Chave cidades var cidades = retorno.First(s => s.Key == "cidades"); Assert.AreEqual(cidades.Value.Count, 3); // Apenas um subIndice Assert.IsTrue(cidades.Value.Any(s => s.Key == 2000)); Assert.IsTrue(cidades.Value.Any(s => s.Key == 2001)); Assert.IsTrue(cidades.Value.Any(s => s.Key == 2002)); // nenhum diferente destes 3. Assert.AreEqual(cidades.Value.Count(s => s.Key != 2000 && s.Key != 2001 && s.Key != 2002), 0); // verifica o valor de cada subIndice. Assert.AreEqual(cidades.Value.First(s => s.Key == 2000).Value.First(), "anapolis"); Assert.AreEqual(cidades.Value.First(s => s.Key == 2001).Value.First(), "goiania"); Assert.AreEqual(cidades.Value.First(s => s.Key == 2002).Value.First(), "florianopolis"); // verifica que cada subIndice tem apenas um valor Assert.AreEqual(cidades.Value.First(s => s.Key == 2000).Value.Count, 1); Assert.AreEqual(cidades.Value.First(s => s.Key == 2001).Value.Count, 1); Assert.AreEqual(cidades.Value.First(s => s.Key == 2002).Value.Count, 1); // Chave carros var carros = retorno.First(s => s.Key == "carros"); Assert.AreEqual(carros.Value.Count, 3); // Apenas um subIndice Assert.IsTrue(carros.Value.Any(s => s.Key == 8000)); Assert.IsTrue(carros.Value.Any(s => s.Key == 8001)); Assert.IsTrue(carros.Value.Any(s => s.Key == 8002)); // nenhum diferente destes 3. Assert.AreEqual(carros.Value.Count(s => s.Key != 8000 && s.Key != 8001 && s.Key != 8002), 0); // verifica o valor de cada subIndice. Assert.AreEqual(carros.Value.First(s => s.Key == 8000).Value.First(), "focus"); Assert.AreEqual(carros.Value.First(s => s.Key == 8001).Value.First(), "mustang"); Assert.AreEqual(carros.Value.First(s => s.Key == 8002).Value.First(), "fusion"); // verifica que cada subIndice tem apenas um valor Assert.AreEqual(carros.Value.First(s => s.Key == 8000).Value.Count, 1); Assert.AreEqual(carros.Value.First(s => s.Key == 8001).Value.Count, 1); Assert.AreEqual(carros.Value.First(s => s.Key == 8002).Value.Count, 1); // Chave jogos var jogos = retorno.First(s => s.Key == "jogos"); Assert.AreEqual(jogos.Value.Count, 3); // Apenas um subIndice Assert.IsTrue(jogos.Value.Any(s => s.Key == 5000)); Assert.IsTrue(jogos.Value.Any(s => s.Key == 5001)); Assert.IsTrue(jogos.Value.Any(s => s.Key == 5002)); // nenhum diferente destes 3. Assert.AreEqual(jogos.Value.Count(s => s.Key != 5000 && s.Key != 5001 && s.Key != 5002), 0); // verifica o valor de cada subIndice. Assert.AreEqual(jogos.Value.First(s => s.Key == 5000).Value.First(), "basquete"); Assert.AreEqual(jogos.Value.First(s => s.Key == 5001).Value.First(), "futebol"); Assert.AreEqual(jogos.Value.First(s => s.Key == 5002).Value.First(), "voley"); // verifica que cada subIndice tem apenas um valor Assert.AreEqual(jogos.Value.First(s => s.Key == 5000).Value.Count, 1); Assert.AreEqual(jogos.Value.First(s => s.Key == 5001).Value.Count, 1); Assert.AreEqual(jogos.Value.First(s => s.Key == 5002).Value.Count, 1); }
public void TestarOrdenacaoDeSubIndice() { var hc = new HoplonCollection(); Assert.IsTrue(hc.Add("nomes", 2001, "Gabriel")); Assert.IsTrue(hc.Add("nomes", 2001, "Julia")); Assert.IsTrue(hc.Add("nomes", 2001, "Estelio")); Assert.IsTrue(hc.Add("nomes", 2001, "Marcos")); Assert.IsTrue(hc.Add("nomes", 2001, "Layane")); Assert.IsTrue(hc.Add("nomes", 1982, "Ana Julia")); Assert.IsTrue(hc.Add("nomes", 1982, "Wagner")); Assert.IsTrue(hc.Add("nomes", 1982, "Roberto")); Assert.IsTrue(hc.Add("nomes", 1982, "Bruno")); Assert.IsTrue(hc.Add("nomes", 1982, "Paulo")); Assert.IsTrue(hc.Add("nomes", 1980, "Carlos")); Assert.IsTrue(hc.Add("nomes", 1980, "Willian")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Craujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Braujo")); Assert.IsTrue(hc.Add("nomes", 1980, "Cristiano Araujo")); Assert.IsTrue(hc.Add("nomes", 1981, "Mercia")); Assert.IsTrue(hc.Add("nomes", 1981, "Maria Alves")); Assert.IsTrue(hc.Add("nomes", 1981, "Maria Borboleta")); Assert.IsTrue(hc.Add("nomes", 1981, "Maria Coró")); Assert.IsTrue(hc.Add("nomes", 1981, "Maria Carla")); string[] compare1980 = { "Carlos", "Cristiano", "Cristiano Araujo", "Cristiano Braujo", "Cristiano Craujo", "Willian" }; string[] compare1981 = { "Maria Alves", "Maria Borboleta", "Maria Carla", "Maria Coró", "Mercia" }; string[] compare1982 = { "Ana Julia", "Bruno", "Paulo", "Roberto", "Wagner" }; string[] compare2001 = { "Estelio", "Gabriel", "Julia", "Layane", "Marcos" }; int[] compareSubIndices = { 1980, 1981, 1982, 2001 }; string[] compareGet = { "Carlos", "Cristiano", "Cristiano Araujo", "Cristiano Braujo", "Cristiano Craujo", "Willian", "Maria Alves", "Maria Borboleta", "Maria Carla", "Maria Coró", "Mercia", "Ana Julia", "Bruno", "Paulo", "Roberto", "Wagner", "Estelio","Gabriel","Julia", "Layane", "Marcos" }; var retornoGet = hc.Get("nomes", 0, 0); Assert.AreEqual(retornoGet.Count(), 21); Parallel.For(0, retornoGet.Count, i => { Assert.AreEqual(retornoGet[i], compareGet[i]); }); var retorno = hc.RetornoApoioTeste(); // Qtd de chaves Assert.AreEqual(retorno.Count, 1); // Qt de subIndices Assert.AreEqual(retorno.First().Value.Count, 4); // subIndice 1980 var si1980 = retorno.First().Value.First(s => s.Key == 1980); Parallel.For(0, si1980.Value.Count(), i => { Assert.AreEqual(si1980.Value[i], compare1980[i]); }); // subIndice 1981 var si1981 = retorno.First().Value.First(s => s.Key == 1981); Parallel.For(0, si1981.Value.Count(), i => { Assert.AreEqual(si1981.Value[i], compare1981[i]); }); // subIndice 1982 var si1982 = retorno.First().Value.First(s => s.Key == 1982); Parallel.For(0, si1982.Value.Count(), i => { Assert.AreEqual(si1982.Value[i], compare1982[i]); }); // subIndice 2000 var si2001 = retorno.First().Value.First(s => s.Key == 2001); Parallel.For(0, si2001.Value.Count(), i => { Assert.AreEqual(si2001.Value[i], compare2001[i]); }); // subIndices Parallel.For(0, retorno.First().Value.Count, i => { Assert.AreEqual(retorno.First().Value[i].Key, compareSubIndices[i]); }); }