Skip to content
Snippets Groups Projects
Commit cdd6d6ae authored by JSaunamaki's avatar JSaunamaki
Browse files

Testi

parent 30f0f674
No related branches found
No related tags found
No related merge requests found
Showing
with 538 additions and 0 deletions
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/contentModel.xml
/modules.xml
/projectSettingsUpdater.xml
/.idea.Kantamus.iml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings" defaultProject="true" />
</project>
\ No newline at end of file
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/contentModel.xml
/modules.xml
/projectSettingsUpdater.xml
/.idea.Kantamus.iml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings" defaultProject="true" />
</project>
\ No newline at end of file

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kantamus", "Kantamus\Kantamus.csproj", "{FD4ED467-12BC-4B40-8813-C6D847F93D6E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KantamusTest", "KantamusTest\KantamusTest.csproj", "{B9660634-8B86-42B5-9FEF-7B0134EDB180}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Release|Any CPU.Build.0 = Release|Any CPU
{B9660634-8B86-42B5-9FEF-7B0134EDB180}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B9660634-8B86-42B5-9FEF-7B0134EDB180}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B9660634-8B86-42B5-9FEF-7B0134EDB180}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B9660634-8B86-42B5-9FEF-7B0134EDB180}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kantamus", "Kantamus\Kantamus.csproj", "{FD4ED467-12BC-4B40-8813-C6D847F93D6E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
using System.Xml.Schema;
/// @author Johan Saunamäki
/// @version 19.12.2024
/// <summary>
///
/// </summary>
public class Kantamus
{
/// <summary>
///
/// </summary>
public static void Main()
{
// Tulostetaan tervetuloviesti
Console.WriteLine("Tervetuloa laskentaohjelmaan!");
// Kysytään käyttäjältä tietoja
Console.Write("Tarkasteltavan asian nimi: ");
string nimi = Console.ReadLine();
Console.Write("Saadut tulot (€): ");
double tulot = Convert.ToDouble(Console.ReadLine());
Console.Write("Menot (€): ");
double menot = Convert.ToDouble(Console.ReadLine());
Console.Write("vuokratut päivät (kpl/v): ");
int vuokrapäivät = Convert.ToInt32(Console.ReadLine());
// Console.Write("Yhteensä vuokrattu netin kautta: ");
// int netti = Convert.ToInt32(Console.ReadLine());
//
// Console.Write("Yhteensä vuokrattu puhelimen kautta: ");
// int kasin = Convert.ToInt32(Console.ReadLine());
//
// Tulostetaan tiedot
Console.WriteLine($"{nimi} tärkeimmät luvut:");
double kannattavuus = EKkannattavuus(tulot, menot);
Console.WriteLine($"Kannattavuus (%/V): " + kannattavuus + "%");
double kayttoaste = Kayttoaste(vuokrapäivät);
Console.WriteLine($"Käyttoaste on:" + kayttoaste + "%");
double vuokrausinx = Vuokraustapaind(vuokrausmaarat);
Console.WriteLine($"Keskimääräinen Vuokraustapaindeksi on " + vuokrausinx);
// Pidetään ikkuna auki, kunnes käyttäjä painaa Enteriä
Console.WriteLine("Paina Enter sulkeaksesi ohjelman.");
Console.ReadLine();
}
// Tähän ei tarvitse testejä!
/// <summary>
///
/// </summary>
/// <example>
/// <pre name="test">
///
/// </pre>
/// </example>
private static void Virhe(string virhe)
{
Console.WriteLine(virhe); // tähän voi laittaa jonkin paremman jos haluaa
}
/// <summary>
/// Aliohjelma, joka laskee kannattavuutta
/// </summary>
/// <example>
/// <pre name="test">
/// EKkannattavuus(2000,500) === 400;
/// EKkannattavuus(2000,500) === 400;
/// EKkannattavuus(0,500) === 0;
/// EKkannattavuus(20000,500) === 4000;
/// EKkannattavuus(200,500) === 40;
/// </pre>
/// </example>
public static double EKkannattavuus(double tulot, double menot)
{
double kannattavuus = (tulot / menot) * 100;
return kannattavuus;
}
public static int[] vuokrausmaarat = new int[] {1,0,1,1,0,1}; // 1 = netissa, 0 = kasin// hakasulkujen sisään databasesta haettuja arvoja siitä, miten on vuokrattu. Aina lisätään uusi jäsen, kun uusi vuokraus tulee. Tulee siis kahta jäsentä, käsin - jäsen ja kalenteri - jäsen.
/// <summary>
/// Laskee vuokraustavan rakennetta. Mitä lähempänä ollaan 100, sitä vähemmän omaa työtä kuluu vuokraamiseen.
/// </summary>
/// <example>
/// <pre name="test">
/// Vuokraustapaind(new int[] {1,0}) === 50;
/// Vuokraustapaind(new int[] {}) === 0;
/// Vuokraustapaind(new int[] {1,0,1,0,1,0,1,0}) === 50;
/// Vuokraustapaind(new int[] {1,1,1,1,1,1}) === 100;
/// </pre>
/// </example>
public static double Vuokraustapaind(int[] vuokrausmaara) // Todo: String nimi? Yhdistys databaseen, että voi kysyä tiettyä tuotetta
{
double summa = 0;
double lopullinen = 0;
if (vuokrausmaara.Length == 0) return 0;
for (int i = 0; i < vuokrausmaara.Length; i++)
{
if (vuokrausmaara[i] == 1) summa++;
}
lopullinen = (summa / vuokrausmaara.Length) * 100;// vähennetään koko vuokrausmääristä kaikki käsin syötetyt, ja tehdään siitä kolmen numeron muotoinen indeksi. HUOM!! Jos erotus jää yli tuhanteen, tulee vastaukseksi väärä
return lopullinen;
}
public int vuokrauspäivät = 53;
///<summary>
///Aliohjelma, joka laskee x:n käyttöastetta
/// </summary>
/// <example>
/// <pre name="test">
/// Kayttoaste(365) === 100;
/// Kayttoaste(50) === 13.698630136986301;
/// </pre>
/// </example>
public static double Kayttoaste(double vuokrapaivat) //Todo: Int vuokrauspäivät suoraan databasesta liittyen tiettyyn tuotteeseen
{
double kayttoaste = (vuokrapaivat / 365) * 100;
return kayttoaste;
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ExternalConsole>true</ExternalConsole>
</PropertyGroup>
</Project>
// ReSharper disable all
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
using System.Xml.Schema;
using NUnit.Framework;
using static Kantamus;
[TestFixture]
[DefaultFloatingPointTolerance(0.000001)]
public class TestKantamus
{
[Test]
public void TestVirhe64()
{
}
[Test]
public void TestEKkannattavuus76()
{
Assert.AreEqual( 400, EKkannattavuus(2000,500) , "in method EKkannattavuus, line 77");
Assert.AreEqual( 400, EKkannattavuus(2000,500) , "in method EKkannattavuus, line 78");
Assert.AreEqual( 0, EKkannattavuus(0,500) , "in method EKkannattavuus, line 79");
Assert.AreEqual( 4000, EKkannattavuus(20000,500) , "in method EKkannattavuus, line 80");
Assert.AreEqual( 40, EKkannattavuus(200,500) , "in method EKkannattavuus, line 81");
}
[Test]
public void TestVuokraustapaind98()
{
Assert.AreEqual( 50, Vuokraustapaind(new int[] {1,0}) , "in method Vuokraustapaind, line 99");
Assert.AreEqual( 0, Vuokraustapaind(new int[] {}) , "in method Vuokraustapaind, line 100");
Assert.AreEqual( 50, Vuokraustapaind(new int[] {1,0,1,0,1,0,1,0}) , "in method Vuokraustapaind, line 101");
Assert.AreEqual( 100, Vuokraustapaind(new int[] {1,1,1,1,1,1}) , "in method Vuokraustapaind, line 102");
}
[Test]
public void TestKayttoaste126()
{
Assert.AreEqual( 100, Kayttoaste(365) , "in method Kayttoaste, line 127");
Assert.AreEqual( 13.698630136986301, Kayttoaste(50) , "in method Kayttoaste, line 128");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.13.1"/>
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Kantamus\Kantamus.csproj"/>
</ItemGroup>
</Project>

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kantamus", "Kantamus\Kantamus.csproj", "{FD4ED467-12BC-4B40-8813-C6D847F93D6E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KantamusTest", "KantamusTest\KantamusTest.csproj", "{B9660634-8B86-42B5-9FEF-7B0134EDB180}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Release|Any CPU.Build.0 = Release|Any CPU
{B9660634-8B86-42B5-9FEF-7B0134EDB180}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B9660634-8B86-42B5-9FEF-7B0134EDB180}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B9660634-8B86-42B5-9FEF-7B0134EDB180}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B9660634-8B86-42B5-9FEF-7B0134EDB180}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kantamus", "Kantamus\Kantamus.csproj", "{FD4ED467-12BC-4B40-8813-C6D847F93D6E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FD4ED467-12BC-4B40-8813-C6D847F93D6E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
using System.Xml.Schema;
/// @author Johan Saunamäki
/// @version 19.12.2024
/// <summary>
///
/// </summary>
public class Kantamus
{
/// <summary>
///
/// </summary>
public static void Main()
{
// Tulostetaan tervetuloviesti
Console.WriteLine("Tervetuloa laskentaohjelmaan!");
// Kysytään käyttäjältä tietoja
Console.Write("Tarkasteltavan asian nimi: ");
string nimi = Console.ReadLine();
Console.Write("Saadut tulot (€): ");
double tulot = Convert.ToDouble(Console.ReadLine());
Console.Write("Menot (€): ");
double menot = Convert.ToDouble(Console.ReadLine());
Console.Write("vuokratut päivät (kpl/v): ");
int vuokrapäivät = Convert.ToInt32(Console.ReadLine());
// Console.Write("Yhteensä vuokrattu netin kautta: ");
// int netti = Convert.ToInt32(Console.ReadLine());
//
// Console.Write("Yhteensä vuokrattu puhelimen kautta: ");
// int kasin = Convert.ToInt32(Console.ReadLine());
//
// Tulostetaan tiedot
Console.WriteLine($"{nimi} tärkeimmät luvut:");
double kannattavuus = EKkannattavuus(tulot, menot);
Console.WriteLine($"Kannattavuus (%/V): " + kannattavuus + "%");
double kayttoaste = Kayttoaste(vuokrapäivät);
Console.WriteLine($"Käyttoaste on:" + kayttoaste + "%");
double vuokrausinx = Vuokraustapaind(vuokrausmaarat);
Console.WriteLine($"Keskimääräinen Vuokraustapaindeksi on " + vuokrausinx);
// Pidetään ikkuna auki, kunnes käyttäjä painaa Enteriä
Console.WriteLine("Paina Enter sulkeaksesi ohjelman.");
Console.ReadLine();
}
// Tähän ei tarvitse testejä!
/// <summary>
///
/// </summary>
/// <example>
/// <pre name="test">
///
/// </pre>
/// </example>
private static void Virhe(string virhe)
{
Console.WriteLine(virhe); // tähän voi laittaa jonkin paremman jos haluaa
}
/// <summary>
/// Aliohjelma, joka laskee kannattavuutta
/// </summary>
/// <example>
/// <pre name="test">
/// EKkannattavuus(2000,500) === 400;
/// EKkannattavuus(2000,500) === 400;
/// EKkannattavuus(0,500) === 0;
/// EKkannattavuus(20000,500) === 4000;
/// EKkannattavuus(200,500) === 40;
/// </pre>
/// </example>
public static double EKkannattavuus(double tulot, double menot)
{
double kannattavuus = (tulot / menot) * 100;
return kannattavuus;
}
public static int[] vuokrausmaarat = new int[] {1,0,1,1,0,1}; // 1 = netissa, 0 = kasin// hakasulkujen sisään databasesta haettuja arvoja siitä, miten on vuokrattu. Aina lisätään uusi jäsen, kun uusi vuokraus tulee. Tulee siis kahta jäsentä, käsin - jäsen ja kalenteri - jäsen.
/// <summary>
/// Laskee vuokraustavan rakennetta. Mitä lähempänä ollaan 100, sitä vähemmän omaa työtä kuluu vuokraamiseen.
/// </summary>
/// <example>
/// <pre name="test">
/// Vuokraustapaind(new int[] {1,0}) === 50;
/// Vuokraustapaind(new int[] {}) === 0;
/// Vuokraustapaind(new int[] {1,0,1,0,1,0,1,0}) === 50;
/// Vuokraustapaind(new int[] {1,1,1,1,1,1}) === 100;
/// </pre>
/// </example>
public static double Vuokraustapaind(int[] vuokrausmaara) // Todo: String nimi? Yhdistys databaseen, että voi kysyä tiettyä tuotetta
{
double summa = 0;
double lopullinen = 0;
if (vuokrausmaara.Length == 0) return 0;
for (int i = 0; i < vuokrausmaara.Length; i++)
{
if (vuokrausmaara[i] == 1) summa++;
}
lopullinen = (summa / vuokrausmaara.Length) * 100;// vähennetään koko vuokrausmääristä kaikki käsin syötetyt, ja tehdään siitä kolmen numeron muotoinen indeksi. HUOM!! Jos erotus jää yli tuhanteen, tulee vastaukseksi väärä
return lopullinen;
}
public int vuokrauspäivät = 53;
///<summary>
///Aliohjelma, joka laskee x:n käyttöastetta
/// </summary>
/// <example>
/// <pre name="test">
/// Kayttoaste(365) === 100;
/// Kayttoaste(50) === 13.698630136986301;
/// </pre>
/// </example>
public static double Kayttoaste(double vuokrapaivat) //Todo: Int vuokrauspäivät suoraan databasesta liittyen tiettyyn tuotteeseen
{
double kayttoaste = (vuokrapaivat / 365) * 100;
return kayttoaste;
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ExternalConsole>true</ExternalConsole>
</PropertyGroup>
</Project>
// ReSharper disable all
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
using System.Xml.Schema;
using NUnit.Framework;
using static Kantamus;
[TestFixture]
[DefaultFloatingPointTolerance(0.000001)]
public class TestKantamus
{
[Test]
public void TestVirhe64()
{
}
[Test]
public void TestEKkannattavuus76()
{
Assert.AreEqual( 400, EKkannattavuus(2000,500) , "in method EKkannattavuus, line 77");
Assert.AreEqual( 400, EKkannattavuus(2000,500) , "in method EKkannattavuus, line 78");
Assert.AreEqual( 0, EKkannattavuus(0,500) , "in method EKkannattavuus, line 79");
Assert.AreEqual( 4000, EKkannattavuus(20000,500) , "in method EKkannattavuus, line 80");
Assert.AreEqual( 40, EKkannattavuus(200,500) , "in method EKkannattavuus, line 81");
}
[Test]
public void TestVuokraustapaind98()
{
Assert.AreEqual( 50, Vuokraustapaind(new int[] {1,0}) , "in method Vuokraustapaind, line 99");
Assert.AreEqual( 0, Vuokraustapaind(new int[] {}) , "in method Vuokraustapaind, line 100");
Assert.AreEqual( 50, Vuokraustapaind(new int[] {1,0,1,0,1,0,1,0}) , "in method Vuokraustapaind, line 101");
Assert.AreEqual( 100, Vuokraustapaind(new int[] {1,1,1,1,1,1}) , "in method Vuokraustapaind, line 102");
}
[Test]
public void TestKayttoaste126()
{
Assert.AreEqual( 100, Kayttoaste(365) , "in method Kayttoaste, line 127");
Assert.AreEqual( 13.698630136986301, Kayttoaste(50) , "in method Kayttoaste, line 128");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.13.1"/>
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Kantamus\Kantamus.csproj"/>
</ItemGroup>
</Project>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment