ishouldsleep

This commit is contained in:
Lendaia Mirai
2025-11-07 01:44:11 +01:00
parent 986f22194b
commit 50ab18831a
3 changed files with 385 additions and 358 deletions

View File

@@ -107,9 +107,16 @@ namespace OE.ALGA.Adatszerkezetek
}
public T Elso()
{
if (Ures)
{
throw new NincsElemKivetel();
}
else
{
return fej.tart;
}
}
public void Sorba(T ertek)
{
@@ -242,6 +249,24 @@ namespace OE.ALGA.Adatszerkezetek
}
public void Torol(T ertek)
{
if (Elemszam > 0)
{
if (ertek.Equals(fej.tart))
{
if (fej.kov == null)
{
fej = null;
n--;
}
else
{
fej = fej.kov;
fej.elozo = null;
n--;
}
}
else
{
LancElem<T> tmp = fej;
while (tmp.kov != null)
@@ -255,6 +280,8 @@ namespace OE.ALGA.Adatszerkezetek
tmp = tmp.kov;
}
}
}
}
private LancElem<T> Indexedik(int index)
{
LancElem<T>? tmp = fej;

View File

@@ -71,7 +71,7 @@ namespace OE.ALGA.Optimalizalas
}
public T OptimalisMegoldas()
{
T legjobb = generator(0);
T legjobb = generator(1);
for (int i = 1; i < m; i++)
{
T tmp = generator(i);

View File

@@ -1,353 +1,353 @@
//using NUnit.Framework;
//using OE.ALGA.Adatszerkezetek;
using NUnit.Framework;
using OE.ALGA.Adatszerkezetek;
//namespace OE.ALGA.Tesztek.Adatszerkezetek
//{
// [TestFixture(Category = "Adatszerkezetek", TestName = "04 - Lancolt Lista Tesztek")]
// public class LancoltListaTesztek
// {
// [TestCase]
// public void Elemszam()
// {
// Lista<string> l = new LancoltLista<string>();
// Assert.That(l.Elemszam, Is.EqualTo(0));
// l.Hozzafuz("A");
// Assert.That(l.Elemszam, Is.EqualTo(1));
// l.Hozzafuz("B");
// Assert.That(l.Elemszam, Is.EqualTo(2));
// l.Torol("A");
// Assert.That(l.Elemszam, Is.EqualTo(1));
// }
// [TestCase]
// public void Bejaras()
// {
// Lista<int> l = new LancoltLista<int>();
// l.Hozzafuz(1);
// l.Hozzafuz(3);
// l.Hozzafuz(2);
// string s = "";
// l.Bejar(x => { Guardian.Recursion.CheckStackTrace(); s += x.ToString(); });
// Assert.That(s, Is.EqualTo("132"));
// }
// [TestCase]
// public void Beszuras()
// {
// Lista<int> l = new LancoltLista<int>();
// l.Beszur(0, 1);
// l.Beszur(0, 2);
// l.Beszur(1, 3);
// l.Beszur(3, 4);
// l.Beszur(2, 5);
// Assert.Multiple(() =>
// {
// Assert.That(l.Kiolvas(0), Is.EqualTo(2));
// Assert.That(l.Kiolvas(1), Is.EqualTo(3));
// Assert.That(l.Kiolvas(2), Is.EqualTo(5));
// Assert.That(l.Kiolvas(3), Is.EqualTo(1));
// Assert.That(l.Kiolvas(4), Is.EqualTo(4));
// });
// }
// [TestCase]
// public void BeszurasUres()
// {
// Lista<string> l = new LancoltLista<string>();
// l.Beszur(0, "1");
// l.Beszur(0, "2");
// l.Beszur(1, "");
// l.Beszur(3, "");
// l.Beszur(2, "5");
// Assert.Multiple(() =>
// {
// Assert.That(l.Kiolvas(0), Is.EqualTo("2"));
// Assert.That(l.Kiolvas(1), Is.EqualTo(""));
// Assert.That(l.Kiolvas(2), Is.EqualTo("5"));
// Assert.That(l.Kiolvas(3), Is.EqualTo("1"));
// Assert.That(l.Kiolvas(4), Is.EqualTo(""));
// });
// }
// [TestCase]
// public void HozzaFuzes()
// {
// Lista<int> l = new LancoltLista<int>();
// l.Hozzafuz(1);
// l.Hozzafuz(3);
// l.Hozzafuz(2);
// Assert.Multiple(() =>
// {
// Assert.That(l.Kiolvas(0), Is.EqualTo(1));
// Assert.That(l.Kiolvas(1), Is.EqualTo(3));
// Assert.That(l.Kiolvas(2), Is.EqualTo(2));
// });
// }
// [TestCase]
// public void HozzaFuzesUres()
// {
// Lista<string> l = new LancoltLista<string>();
// l.Hozzafuz("1");
// l.Hozzafuz("");
// l.Hozzafuz("");
// l.Hozzafuz("1");
// Assert.Multiple(() =>
// {
// Assert.That(l.Kiolvas(0), Is.EqualTo("1"));
// Assert.That(l.Kiolvas(1), Is.EqualTo(""));
// Assert.That(l.Kiolvas(2), Is.EqualTo(""));
// Assert.That(l.Kiolvas(3), Is.EqualTo("1"));
// });
// }
// [TestCase]
// public void Novekedes()
// {
// Lista<int> l = new LancoltLista<int>();
// for (int i = 0; i < 1000; i++)
// l.Hozzafuz(i * i);
// Assert.That(l.Elemszam, Is.EqualTo(1000));
// Assert.Multiple(() =>
// {
// for (int i = 0; i < 1000; i++)
// Assert.That(l.Kiolvas(i), Is.EqualTo(i * i));
// });
// Assert.That(l.Elemszam, Is.EqualTo(1000));
// }
// [TestCase]
// public void Torles()
// {
// Lista<int> l = new LancoltLista<int>();
// l.Hozzafuz(1);
// l.Hozzafuz(3);
// l.Hozzafuz(2);
// l.Hozzafuz(3);
// l.Hozzafuz(4);
// Assert.That(l.Elemszam, Is.EqualTo(5));
// l.Torol(3);
// Assert.That(l.Elemszam, Is.EqualTo(3));
// Assert.Multiple(() =>
// {
// Assert.That(l.Kiolvas(0), Is.EqualTo(1));
// Assert.That(l.Kiolvas(1), Is.EqualTo(2));
// Assert.That(l.Kiolvas(2), Is.EqualTo(4));
// });
// }
// [TestCase]
// public void TorlesNincsElem()
// {
// Lista<int> l = new LancoltLista<int>();
// Assert.That(l.Elemszam, Is.EqualTo(0));
// l.Torol(0);
// Assert.That(l.Elemszam, Is.EqualTo(0));
// }
// [TestCase]
// public void TorlesUres()
// {
// Lista<string> l = new LancoltLista<string>();
// l.Hozzafuz("1");
// l.Hozzafuz("");
// l.Hozzafuz("");
// l.Hozzafuz("");
// l.Hozzafuz("1");
// Assert.That(l.Elemszam, Is.EqualTo(5));
// l.Torol("");
// Assert.That(l.Elemszam, Is.EqualTo(2));
// Assert.Multiple(() =>
// {
// Assert.That(l.Kiolvas(0), Is.EqualTo("1"));
// Assert.That(l.Kiolvas(1), Is.EqualTo("1"));
// });
// }
// [TestCase]
// public void NemletezoTorles()
// {
// Lista<int> l = new LancoltLista<int>();
// l.Hozzafuz(1);
// l.Hozzafuz(2);
// l.Hozzafuz(3);
// Assert.That(l.Elemszam, Is.EqualTo(3));
// l.Torol(0);
// Assert.That(l.Elemszam, Is.EqualTo(3));
// Assert.Multiple(() =>
// {
// Assert.That(l.Kiolvas(0), Is.EqualTo(1));
// Assert.That(l.Kiolvas(1), Is.EqualTo(2));
// Assert.That(l.Kiolvas(2), Is.EqualTo(3));
// });
// }
// [TestCase]
// public void Modositas()
// {
// Lista<int> l = new LancoltLista<int>();
// l.Hozzafuz(1);
// l.Hozzafuz(3);
// l.Hozzafuz(2);
// l.Modosit(1, 5);
// l.Modosit(0, 4);
// Assert.Multiple(() =>
// {
// Assert.That(l.Kiolvas(0), Is.EqualTo(4));
// Assert.That(l.Kiolvas(1), Is.EqualTo(5));
// Assert.That(l.Kiolvas(2), Is.EqualTo(2));
// });
// }
// [TestCase]
// public void ForeachBejaras()
// {
// LancoltLista<string> l = new LancoltLista<string>();
// l.Hozzafuz("a");
// l.Hozzafuz("c");
// l.Hozzafuz("d");
// l.Hozzafuz("b");
// string osszefuzo = "";
// foreach (string x in l)
// {
// osszefuzo += x;
// }
// Assert.That(osszefuzo, Is.EqualTo("acdb"));
// }
// }
namespace OE.ALGA.Tesztek.Adatszerkezetek
{
[TestFixture(Category = "Adatszerkezetek", TestName = "04 - Lancolt Lista Tesztek")]
public class LancoltListaTesztek
{
[TestCase]
public void Elemszam()
{
Lista<string> l = new LancoltLista<string>();
Assert.That(l.Elemszam, Is.EqualTo(0));
l.Hozzafuz("A");
Assert.That(l.Elemszam, Is.EqualTo(1));
l.Hozzafuz("B");
Assert.That(l.Elemszam, Is.EqualTo(2));
l.Torol("A");
Assert.That(l.Elemszam, Is.EqualTo(1));
}
[TestCase]
public void Bejaras()
{
Lista<int> l = new LancoltLista<int>();
l.Hozzafuz(1);
l.Hozzafuz(3);
l.Hozzafuz(2);
string s = "";
l.Bejar(x => { Guardian.Recursion.CheckStackTrace(); s += x.ToString(); });
Assert.That(s, Is.EqualTo("132"));
}
[TestCase]
public void Beszuras()
{
Lista<int> l = new LancoltLista<int>();
l.Beszur(0, 1);
l.Beszur(0, 2);
l.Beszur(1, 3);
l.Beszur(3, 4);
l.Beszur(2, 5);
Assert.Multiple(() =>
{
Assert.That(l.Kiolvas(0), Is.EqualTo(2));
Assert.That(l.Kiolvas(1), Is.EqualTo(3));
Assert.That(l.Kiolvas(2), Is.EqualTo(5));
Assert.That(l.Kiolvas(3), Is.EqualTo(1));
Assert.That(l.Kiolvas(4), Is.EqualTo(4));
});
}
[TestCase]
public void BeszurasUres()
{
Lista<string> l = new LancoltLista<string>();
l.Beszur(0, "1");
l.Beszur(0, "2");
l.Beszur(1, "");
l.Beszur(3, "");
l.Beszur(2, "5");
Assert.Multiple(() =>
{
Assert.That(l.Kiolvas(0), Is.EqualTo("2"));
Assert.That(l.Kiolvas(1), Is.EqualTo(""));
Assert.That(l.Kiolvas(2), Is.EqualTo("5"));
Assert.That(l.Kiolvas(3), Is.EqualTo("1"));
Assert.That(l.Kiolvas(4), Is.EqualTo(""));
});
}
[TestCase]
public void HozzaFuzes()
{
Lista<int> l = new LancoltLista<int>();
l.Hozzafuz(1);
l.Hozzafuz(3);
l.Hozzafuz(2);
Assert.Multiple(() =>
{
Assert.That(l.Kiolvas(0), Is.EqualTo(1));
Assert.That(l.Kiolvas(1), Is.EqualTo(3));
Assert.That(l.Kiolvas(2), Is.EqualTo(2));
});
}
[TestCase]
public void HozzaFuzesUres()
{
Lista<string> l = new LancoltLista<string>();
l.Hozzafuz("1");
l.Hozzafuz("");
l.Hozzafuz("");
l.Hozzafuz("1");
Assert.Multiple(() =>
{
Assert.That(l.Kiolvas(0), Is.EqualTo("1"));
Assert.That(l.Kiolvas(1), Is.EqualTo(""));
Assert.That(l.Kiolvas(2), Is.EqualTo(""));
Assert.That(l.Kiolvas(3), Is.EqualTo("1"));
});
}
[TestCase]
public void Novekedes()
{
Lista<int> l = new LancoltLista<int>();
for (int i = 0; i < 1000; i++)
l.Hozzafuz(i * i);
Assert.That(l.Elemszam, Is.EqualTo(1000));
Assert.Multiple(() =>
{
for (int i = 0; i < 1000; i++)
Assert.That(l.Kiolvas(i), Is.EqualTo(i * i));
});
Assert.That(l.Elemszam, Is.EqualTo(1000));
}
[TestCase]
public void Torles()
{
Lista<int> l = new LancoltLista<int>();
l.Hozzafuz(1);
l.Hozzafuz(3);
l.Hozzafuz(2);
l.Hozzafuz(3);
l.Hozzafuz(4);
Assert.That(l.Elemszam, Is.EqualTo(5));
l.Torol(3);
Assert.That(l.Elemszam, Is.EqualTo(3));
Assert.Multiple(() =>
{
Assert.That(l.Kiolvas(0), Is.EqualTo(1));
Assert.That(l.Kiolvas(1), Is.EqualTo(2));
Assert.That(l.Kiolvas(2), Is.EqualTo(4));
});
}
[TestCase]
public void TorlesNincsElem()
{
Lista<int> l = new LancoltLista<int>();
Assert.That(l.Elemszam, Is.EqualTo(0));
l.Torol(0);
Assert.That(l.Elemszam, Is.EqualTo(0));
}
[TestCase]
public void TorlesUres()
{
Lista<string> l = new LancoltLista<string>();
l.Hozzafuz("1");
l.Hozzafuz("");
l.Hozzafuz("");
l.Hozzafuz("");
l.Hozzafuz("1");
Assert.That(l.Elemszam, Is.EqualTo(5));
l.Torol("");
Assert.That(l.Elemszam, Is.EqualTo(2));
Assert.Multiple(() =>
{
Assert.That(l.Kiolvas(0), Is.EqualTo("1"));
Assert.That(l.Kiolvas(1), Is.EqualTo("1"));
});
}
[TestCase]
public void NemletezoTorles()
{
Lista<int> l = new LancoltLista<int>();
l.Hozzafuz(1);
l.Hozzafuz(2);
l.Hozzafuz(3);
Assert.That(l.Elemszam, Is.EqualTo(3));
l.Torol(0);
Assert.That(l.Elemszam, Is.EqualTo(3));
Assert.Multiple(() =>
{
Assert.That(l.Kiolvas(0), Is.EqualTo(1));
Assert.That(l.Kiolvas(1), Is.EqualTo(2));
Assert.That(l.Kiolvas(2), Is.EqualTo(3));
});
}
[TestCase]
public void Modositas()
{
Lista<int> l = new LancoltLista<int>();
l.Hozzafuz(1);
l.Hozzafuz(3);
l.Hozzafuz(2);
l.Modosit(1, 5);
l.Modosit(0, 4);
Assert.Multiple(() =>
{
Assert.That(l.Kiolvas(0), Is.EqualTo(4));
Assert.That(l.Kiolvas(1), Is.EqualTo(5));
Assert.That(l.Kiolvas(2), Is.EqualTo(2));
});
}
[TestCase]
public void ForeachBejaras()
{
LancoltLista<string> l = new LancoltLista<string>();
l.Hozzafuz("a");
l.Hozzafuz("c");
l.Hozzafuz("d");
l.Hozzafuz("b");
string osszefuzo = "";
foreach (string x in l)
{
osszefuzo += x;
}
Assert.That(osszefuzo, Is.EqualTo("acdb"));
}
}
// [TestFixture(Category = "Adatszerkezetek", TestName = "04 - Lancolt Sor Tesztek")]
// public class LancoltSorTesztek
// {
// [TestCase]
// public void Ures()
// {
// Sor<int> s = new LancoltSor<int>();
// Assert.That(s.Ures, Is.True);
// Assert.Throws<NincsElemKivetel>(() => s.Elso());
// Assert.Throws<NincsElemKivetel>(() => s.Sorbol());
// s.Sorba(1);
// Assert.That(s.Ures, Is.False);
// s.Sorbol();
// Assert.That(s.Ures, Is.True);
// }
// [TestCase]
// public void AlapMukodes()
// {
// Sor<int> s = new LancoltSor<int>();
// s.Sorba(1);
// s.Sorba(3);
// s.Sorba(2);
// Assert.Multiple(() =>
// {
// Assert.That(s.Sorbol(), Is.EqualTo(1));
// Assert.That(s.Sorbol(), Is.EqualTo(3));
// Assert.That(s.Sorbol(), Is.EqualTo(2));
// });
// }
// [TestCase]
// public void UresElem()
// {
// Sor<string> s = new LancoltSor<string>();
// s.Sorba("");
// s.Sorba("1");
// s.Sorba("");
// Assert.Multiple(() =>
// {
// Assert.That(s.Sorbol(), Is.EqualTo(""));
// Assert.That(s.Sorbol(), Is.EqualTo("1"));
// Assert.That(s.Sorbol(), Is.EqualTo(""));
// });
// }
// [TestCase]
// public void TulKevesElem()
// {
// Sor<int> s = new LancoltSor<int>();
// s.Sorba(1);
// s.Sorba(3);
// s.Sorba(2);
// s.Sorbol();
// s.Sorbol();
// s.Sorbol();
// Assert.Throws<NincsElemKivetel>(() => s.Sorbol());
// }
// [TestCase]
// public void Elso()
// {
// Sor<int> s = new LancoltSor<int>();
// s.Sorba(1);
// s.Sorba(3);
// s.Sorba(2);
// Assert.Multiple(() =>
// {
// Assert.That(s.Elso(), Is.EqualTo(1));
// Assert.That(s.Elso(), Is.EqualTo(1));
// });
// s.Sorbol();
// Assert.That(s.Elso(), Is.EqualTo(3));
// }
// }
[TestFixture(Category = "Adatszerkezetek", TestName = "04 - Lancolt Sor Tesztek")]
public class LancoltSorTesztek
{
[TestCase]
public void Ures()
{
Sor<int> s = new LancoltSor<int>();
Assert.That(s.Ures, Is.True);
Assert.Throws<NincsElemKivetel>(() => s.Elso());
Assert.Throws<NincsElemKivetel>(() => s.Sorbol());
s.Sorba(1);
Assert.That(s.Ures, Is.False);
s.Sorbol();
Assert.That(s.Ures, Is.True);
}
[TestCase]
public void AlapMukodes()
{
Sor<int> s = new LancoltSor<int>();
s.Sorba(1);
s.Sorba(3);
s.Sorba(2);
Assert.Multiple(() =>
{
Assert.That(s.Sorbol(), Is.EqualTo(1));
Assert.That(s.Sorbol(), Is.EqualTo(3));
Assert.That(s.Sorbol(), Is.EqualTo(2));
});
}
[TestCase]
public void UresElem()
{
Sor<string> s = new LancoltSor<string>();
s.Sorba("");
s.Sorba("1");
s.Sorba("");
Assert.Multiple(() =>
{
Assert.That(s.Sorbol(), Is.EqualTo(""));
Assert.That(s.Sorbol(), Is.EqualTo("1"));
Assert.That(s.Sorbol(), Is.EqualTo(""));
});
}
[TestCase]
public void TulKevesElem()
{
Sor<int> s = new LancoltSor<int>();
s.Sorba(1);
s.Sorba(3);
s.Sorba(2);
s.Sorbol();
s.Sorbol();
s.Sorbol();
Assert.Throws<NincsElemKivetel>(() => s.Sorbol());
}
[TestCase]
public void Elso()
{
Sor<int> s = new LancoltSor<int>();
s.Sorba(1);
s.Sorba(3);
s.Sorba(2);
Assert.Multiple(() =>
{
Assert.That(s.Elso(), Is.EqualTo(1));
Assert.That(s.Elso(), Is.EqualTo(1));
});
s.Sorbol();
Assert.That(s.Elso(), Is.EqualTo(3));
}
}
// [TestFixture(Category = "Adatszerkezetek", TestName = "04 - Lancolt Verem Tesztek")]
// public class LancoltVeremTesztek
// {
// [TestCase]
// public void Ures()
// {
// Verem<int> v = new LancoltVerem<int>();
// Assert.That(v.Ures, Is.True);
// Assert.Throws<NincsElemKivetel>(() => v.Felso());
// Assert.Throws<NincsElemKivetel>(() => v.Verembol());
// v.Verembe(1);
// Assert.That(v.Ures, Is.False);
// v.Verembol();
// Assert.That(v.Ures, Is.True);
// }
// [TestCase]
// public void AlapMukodes()
// {
// Verem<int> v = new LancoltVerem<int>();
// v.Verembe(1);
// v.Verembe(3);
// v.Verembe(2);
// Assert.That(v.Verembol(), Is.EqualTo(2));
// v.Verembe(4);
// Assert.Multiple(() =>
// {
// Assert.That(v.Verembol(), Is.EqualTo(4));
// Assert.That(v.Verembol(), Is.EqualTo(3));
// Assert.That(v.Verembol(), Is.EqualTo(1));
// });
// }
// [TestCase]
// public void UresElem()
// {
// Verem<string> v = new LancoltVerem<string>();
// v.Verembe("");
// v.Verembe("1");
// v.Verembe("");
// Assert.Multiple(() =>
// {
// Assert.That(v.Verembol(), Is.EqualTo(""));
// Assert.That(v.Verembol(), Is.EqualTo("1"));
// Assert.That(v.Verembol(), Is.EqualTo(""));
// });
// }
// [TestCase]
// public void TulKevesElem()
// {
// Verem<int> v = new LancoltVerem<int>();
// v.Verembe(1);
// v.Verembe(3);
// v.Verembe(2);
// v.Verembol();
// v.Verembol();
// v.Verembol();
// Assert.Throws<NincsElemKivetel>(() => v.Verembol());
// }
// [TestCase]
// public void Felso()
// {
// Verem<int> v = new LancoltVerem<int>();
// v.Verembe(1);
// v.Verembe(3);
// v.Verembe(2);
// Assert.Multiple(() =>
// {
// Assert.That(v.Felso(), Is.EqualTo(2));
// Assert.That(v.Felso(), Is.EqualTo(2));
// });
// v.Verembol();
// Assert.That(v.Felso(), Is.EqualTo(3));
// }
[TestFixture(Category = "Adatszerkezetek", TestName = "04 - Lancolt Verem Tesztek")]
public class LancoltVeremTesztek
{
[TestCase]
public void Ures()
{
Verem<int> v = new LancoltVerem<int>();
Assert.That(v.Ures, Is.True);
Assert.Throws<NincsElemKivetel>(() => v.Felso());
Assert.Throws<NincsElemKivetel>(() => v.Verembol());
v.Verembe(1);
Assert.That(v.Ures, Is.False);
v.Verembol();
Assert.That(v.Ures, Is.True);
}
[TestCase]
public void AlapMukodes()
{
Verem<int> v = new LancoltVerem<int>();
v.Verembe(1);
v.Verembe(3);
v.Verembe(2);
Assert.That(v.Verembol(), Is.EqualTo(2));
v.Verembe(4);
Assert.Multiple(() =>
{
Assert.That(v.Verembol(), Is.EqualTo(4));
Assert.That(v.Verembol(), Is.EqualTo(3));
Assert.That(v.Verembol(), Is.EqualTo(1));
});
}
[TestCase]
public void UresElem()
{
Verem<string> v = new LancoltVerem<string>();
v.Verembe("");
v.Verembe("1");
v.Verembe("");
Assert.Multiple(() =>
{
Assert.That(v.Verembol(), Is.EqualTo(""));
Assert.That(v.Verembol(), Is.EqualTo("1"));
Assert.That(v.Verembol(), Is.EqualTo(""));
});
}
[TestCase]
public void TulKevesElem()
{
Verem<int> v = new LancoltVerem<int>();
v.Verembe(1);
v.Verembe(3);
v.Verembe(2);
v.Verembol();
v.Verembol();
v.Verembol();
Assert.Throws<NincsElemKivetel>(() => v.Verembol());
}
[TestCase]
public void Felso()
{
Verem<int> v = new LancoltVerem<int>();
v.Verembe(1);
v.Verembe(3);
v.Verembe(2);
Assert.Multiple(() =>
{
Assert.That(v.Felso(), Is.EqualTo(2));
Assert.That(v.Felso(), Is.EqualTo(2));
});
v.Verembol();
Assert.That(v.Felso(), Is.EqualTo(3));
}
// }
//}
}
}