Moved from rust to C#

This commit is contained in:
Zastian Pretorius
2022-07-25 15:26:12 +01:00
parent 3fd8cc0785
commit b26a18a8de
46 changed files with 1318 additions and 566 deletions

3
.gitignore vendored
View File

@@ -1 +1,2 @@
/target
/.vscode
/bin

285
Cargo.lock generated
View File

@@ -1,285 +0,0 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "arrayref"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
[[package]]
name = "arrayvec"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
"hermit-abi",
"libc",
"winapi",
]
[[package]]
name = "base64"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
[[package]]
name = "blake2b_simd"
version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
dependencies = [
"arrayref",
"arrayvec",
"constant_time_eq",
]
[[package]]
name = "bstr"
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
dependencies = [
"lazy_static",
"memchr",
"regex-automata",
"serde",
]
[[package]]
name = "byteorder"
version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "constant_time_eq"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
[[package]]
name = "crossbeam-utils"
version = "0.8.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83"
dependencies = [
"cfg-if",
"once_cell",
]
[[package]]
name = "csv"
version = "1.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1"
dependencies = [
"bstr",
"csv-core",
"itoa",
"ryu",
"serde",
]
[[package]]
name = "csv-core"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
dependencies = [
"memchr",
]
[[package]]
name = "dirs"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
dependencies = [
"libc",
"redox_users",
"winapi",
]
[[package]]
name = "encode_unicode"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
[[package]]
name = "getrandom"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
dependencies = [
"cfg-if",
"libc",
"wasi",
]
[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]]
name = "itoa"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
[[package]]
name = "lpr_project"
version = "0.1.0"
dependencies = [
"prettytable-rs",
]
[[package]]
name = "memchr"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[package]]
name = "once_cell"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
[[package]]
name = "prettytable-rs"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fd04b170004fa2daccf418a7f8253aaf033c27760b5f225889024cf66d7ac2e"
dependencies = [
"atty",
"csv",
"encode_unicode",
"lazy_static",
"term",
"unicode-width",
]
[[package]]
name = "redox_syscall"
version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
[[package]]
name = "redox_users"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
dependencies = [
"getrandom",
"redox_syscall",
"rust-argon2",
]
[[package]]
name = "regex-automata"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
[[package]]
name = "rust-argon2"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
dependencies = [
"base64",
"blake2b_simd",
"constant_time_eq",
"crossbeam-utils",
]
[[package]]
name = "ryu"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
[[package]]
name = "serde"
version = "1.0.139"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6"
[[package]]
name = "term"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42"
dependencies = [
"byteorder",
"dirs",
"winapi",
]
[[package]]
name = "unicode-width"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
[[package]]
name = "wasi"
version = "0.9.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"

View File

@@ -1,9 +0,0 @@
[package]
name = "lpr_project"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
prettytable-rs = "^0.8"

322
Program.cs Normal file
View File

@@ -0,0 +1,322 @@
using ConsoleTables;
class lpr381
{
static void Main()
{
List<zConstraints> zConstraintsList = new List<zConstraints>();
List<Constraints> constraintsList = new List<Constraints>();
//read file "input.txt" line by line
string line;
StreamReader file = new StreamReader("input.txt");
while ((line = file.ReadLine()) != null)
{
// if line contains "min" or "max"
if (line.Contains("min") || line.Contains("max"))
{
zConstraints constraints = new zConstraints();
if (line.Contains("min"))
{
constraints.minMax = "min";
}
else
{
constraints.minMax = "max";
}
// remove "min" or "max" from line
line = line.Remove(0, line.IndexOf(constraints.minMax) + constraints.minMax.Length);
// split line by " "
string[] lineArray = line.Split(' ');
//remove empty elements from array
lineArray = lineArray.Where(x => !string.IsNullOrEmpty(x)).ToArray();
// add variables to constraints.variables after parsing them to float
List<float> variables = new List<float>();
foreach (string variable in lineArray)
{
variables.Add(float.Parse(variable));
}
constraints.values = variables;
// add constraints to list
zConstraintsList.Add(constraints);
}
else
{
// split line by " "
string[] lineArray = line.Split(' ');
//remove empty elements from array
lineArray = lineArray.Where(x => !string.IsNullOrEmpty(x)).ToArray();
// for each element in array
Constraints constraints = new Constraints();
List<float> variables = new List<float>();
foreach (string variable in lineArray)
{
if (variable.Contains("=") || variable.Contains(">") || variable.Contains("<"))
{
constraints.sign = variable;
}
else
{
variables.Add(float.Parse(variable));
}
}
constraints.values = variables;
constraintsList.Add(constraints);
}
}
file.Close();
// print constraintsList
foreach (zConstraints constraints in zConstraintsList)
{
Console.WriteLine(constraints.minMax + " " + string.Join(" ", constraints.values));
}
foreach (Constraints constraints in constraintsList)
{
Console.WriteLine(constraints.sign + " " + string.Join(" ", constraints.values));
}
List<List<float>> table = new List<List<float>>();
table.Add(zConstraintsList[0].values);
// add all constraints in constraintsList to table
foreach (Constraints constraints in constraintsList)
{
table.Add(constraints.values);
}
List<List<float>> newTable = new List<List<float>>();
// add all rows in table to newTable
foreach (List<float> row in table)
{
// add all columns in row to newTable without reference to table
List<float> newRow = new List<float>();
for (int i = 0; i < row.Count; i++)
{
newRow.Add(row[i]);
}
newTable.Add(newRow);
}
// add s variable to table
for (int i = 0; i < table.Count; i++)
{
if (i == 0)
{
for (int j = 0; j < table[i].Count + 1; j++)
{
newTable[i].Add(0);
}
}
else
{
for (int j = 0; j < table[i].Count-1; j++)
{
//save the last value in newTable in to lastVal and remove it from newTanle
float lastVal = newTable[i][newTable[i].Count - 1];
newTable[i].RemoveAt(newTable[i].Count - 1);
if (i == j+1)
{
newTable[i].Add(1);
}
else
{
newTable[i].Add(0);
}
newTable[i].Add(lastVal);
}
}
}
// print table
printTable(newTable);
bool optimal = false;
newTable = flipZ(newTable);
Console.WriteLine("\e[31mRed Text\e[0m");
while (!optimal)
{
int pivotCol = findPivotCol(newTable);
List<float> ratio = ratioTest(newTable, pivotCol);
int pivotRow = findPivotRow(ratio);
printTable(newTable);
newTable = pivotTable(newTable, pivotRow, pivotCol);
Console.WriteLine("");
if (checkOptimal(newTable))
{
printTable(newTable);
optimal = true;
}
}
}
static void printTable(List<List<float>> newTable)
{
string[] headers = new string[newTable[0].Count];
double half = newTable[0].Count / 2;
int halfInt = (int)Math.Floor(half);
for (int i = 0; i < newTable[0].Count; i++)
{
if (i != newTable[0].Count - 1 && i < halfInt)
{
headers[i] = "x" + (i + 1);
}
else if (i != newTable[0].Count - 1 && i >= halfInt)
{
// add "s" to headers starting at 1
headers[i] = "s" + ((i - newTable[0].Count / 2)+1);
//headers[i] = "s" + (i + 1);
}
else
{
headers[i] = "rhs";
}
}
var conTable = new ConsoleTable(headers);
// for each row in table add row to conTable
foreach (List<float> row in newTable)
{
// convert row to object array
object[] rowArray = new object[row.Count];
for (int i = 0; i < row.Count; i++)
{
rowArray[i] = row[i];
}
conTable.AddRow(rowArray);
}
conTable.Write(Format.Alternative);
}
static bool checkOptimal(List<List<float>> table)
{
int zIndex = 0;
for (int i = 0; i < table[0].Count; i++)
{
if (table[0][i] < 0)
{
zIndex = i;
}
}
if (zIndex == 0)
{
return true;
}
else
{
return false;
}
}
static List<List<float>> flipZ(List<List<float>> table)
{
for (int i = 0; i < table[0].Count; i++)
{
if (table[0][i] > 0)
{
table[0][i] = -table[0][i];
}
}
return table;
}
static int findPivotCol(List<List<float>> table)
{
float largest = 0;
int largestIndex = 0;
for (int i = 0; i < table[0].Count; i++)
{
if (table[0][i] < largest)
{
largest = table[0][i];
largestIndex = i;
}
}
return largestIndex;
}
static List<float> ratioTest(List<List<float>> table, int testCol)
{
List<float> ratios = new List<float>();
for (int i = 1; i < table.Count; i++)
{
if (table[i][testCol] != 0)
{
ratios.Add(table[i][table[i].Count - 1] / table[i][testCol]);
}
else
{
ratios.Add(float.MaxValue);
}
}
return ratios;
}
static int findPivotRow(List<float> ratios)
{
float smallest = float.MaxValue;
int smallestIndex = 0;
for (int i = 0; i < ratios.Count; i++)
{
if (ratios[i] < smallest && ratios[i] > 0.0)
{
smallest = ratios[i];
smallestIndex = i;
}
}
return smallestIndex;
}
static List<List<float>> pivotTable(List<List<float>> table, int pivotRow, int pivotCol)
{
//clone table in to newTable
List<List<float>> newTable = new List<List<float>>();
foreach (List<float> row in table)
{
List<float> newRow = new List<float>();
for (int i = 0; i < row.Count; i++)
{
newRow.Add(row[i]);
}
newTable.Add(newRow);
}
var pivotPoint = newTable[pivotRow + 1][pivotCol];
// divide pivot row by pivot point
for (int i = 0; i < newTable[pivotRow + 1].Count; i++)
{
newTable[pivotRow + 1][i] = newTable[pivotRow + 1][i] / pivotPoint;
}
// current possition-(pivot_row*new_table pivot_point)
for (int i = 0; i < newTable.Count; i++)
{
if (i != pivotRow + 1)
{
var currentPossition = newTable[i][pivotCol];
for (int j = 0; j < newTable[i].Count; j++)
{
newTable[i][j] = newTable[i][j] - (currentPossition * newTable[pivotRow + 1][j]);
}
}
}
return newTable;
}
}
class zConstraints
{
public string minMax;
public List<float> values;
}
class Constraints
{
public List<float> values;
public string sign;
}

4
input.txt Normal file
View File

@@ -0,0 +1,4 @@
max +60 +30 +20
+8 +6 +1 <= 48
+4 +2 +1.5 >= 20
+2 +1.5 +0.5 = 8

14
lpr381.csproj Normal file
View File

@@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ConsoleTables" Version="2.4.2" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = "")]

BIN
obj/Debug/net6.0/apphost Executable file

Binary file not shown.

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("lpr381")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("lpr381")]
[assembly: System.Reflection.AssemblyTitleAttribute("lpr381")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

View File

@@ -0,0 +1 @@
19ef02a5be1a65bf6b975f4a44f162accba6b382

View File

@@ -0,0 +1,10 @@
is_global = true
build_property.TargetFramework = net6.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = lpr381
build_property.ProjectDir = /home/mrfluffy/Documents/c#/lpr381/

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
fcff68d6d49c0113e7e1149aaa08f33487aa1927

View File

@@ -0,0 +1,17 @@
/home/mrfluffy/Documents/c#/lpr381/obj/Debug/net6.0/lpr381.csproj.AssemblyReference.cache
/home/mrfluffy/Documents/c#/lpr381/obj/Debug/net6.0/lpr381.GeneratedMSBuildEditorConfig.editorconfig
/home/mrfluffy/Documents/c#/lpr381/obj/Debug/net6.0/lpr381.AssemblyInfoInputs.cache
/home/mrfluffy/Documents/c#/lpr381/obj/Debug/net6.0/lpr381.AssemblyInfo.cs
/home/mrfluffy/Documents/c#/lpr381/obj/Debug/net6.0/lpr381.csproj.CoreCompileInputs.cache
/home/mrfluffy/Documents/c#/lpr381/bin/Debug/net6.0/lpr381
/home/mrfluffy/Documents/c#/lpr381/bin/Debug/net6.0/lpr381.deps.json
/home/mrfluffy/Documents/c#/lpr381/bin/Debug/net6.0/lpr381.runtimeconfig.json
/home/mrfluffy/Documents/c#/lpr381/bin/Debug/net6.0/lpr381.dll
/home/mrfluffy/Documents/c#/lpr381/bin/Debug/net6.0/ref/lpr381.dll
/home/mrfluffy/Documents/c#/lpr381/bin/Debug/net6.0/lpr381.pdb
/home/mrfluffy/Documents/c#/lpr381/obj/Debug/net6.0/lpr381.dll
/home/mrfluffy/Documents/c#/lpr381/obj/Debug/net6.0/ref/lpr381.dll
/home/mrfluffy/Documents/c#/lpr381/obj/Debug/net6.0/lpr381.pdb
/home/mrfluffy/Documents/c#/lpr381/obj/Debug/net6.0/lpr381.genruntimeconfig.cache
/home/mrfluffy/Documents/c#/lpr381/obj/Debug/net6.0/lpr381.csproj.CopyComplete
/home/mrfluffy/Documents/c#/lpr381/bin/Debug/net6.0/ConsoleTables.dll

BIN
obj/Debug/net6.0/lpr381.dll Normal file

Binary file not shown.

View File

@@ -0,0 +1 @@
1e253571666f59f5c0ab7c37c5d596e5501a216c

BIN
obj/Debug/net6.0/lpr381.pdb Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = "")]

BIN
obj/Release/net6.0/apphost Executable file

Binary file not shown.

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("lpr381")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("lpr381")]
[assembly: System.Reflection.AssemblyTitleAttribute("lpr381")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

View File

@@ -0,0 +1 @@
b9e0021e723c322ac0b279cab44aef39129eb7a8

View File

@@ -0,0 +1,10 @@
is_global = true
build_property.TargetFramework = net6.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = lpr381
build_property.ProjectDir = /home/mrfluffy/Documents/c#/lpr381/

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

Binary file not shown.

View File

@@ -0,0 +1 @@
1451b566708a8403bb7092754722413801261e62

View File

@@ -0,0 +1,15 @@
/home/mrfluffy/Documents/c#/lpr381/bin/Release/net6.0/lpr381
/home/mrfluffy/Documents/c#/lpr381/bin/Release/net6.0/lpr381.deps.json
/home/mrfluffy/Documents/c#/lpr381/bin/Release/net6.0/lpr381.runtimeconfig.json
/home/mrfluffy/Documents/c#/lpr381/bin/Release/net6.0/lpr381.dll
/home/mrfluffy/Documents/c#/lpr381/bin/Release/net6.0/ref/lpr381.dll
/home/mrfluffy/Documents/c#/lpr381/bin/Release/net6.0/lpr381.pdb
/home/mrfluffy/Documents/c#/lpr381/obj/Release/net6.0/lpr381.csproj.AssemblyReference.cache
/home/mrfluffy/Documents/c#/lpr381/obj/Release/net6.0/lpr381.GeneratedMSBuildEditorConfig.editorconfig
/home/mrfluffy/Documents/c#/lpr381/obj/Release/net6.0/lpr381.AssemblyInfoInputs.cache
/home/mrfluffy/Documents/c#/lpr381/obj/Release/net6.0/lpr381.AssemblyInfo.cs
/home/mrfluffy/Documents/c#/lpr381/obj/Release/net6.0/lpr381.csproj.CoreCompileInputs.cache
/home/mrfluffy/Documents/c#/lpr381/obj/Release/net6.0/lpr381.dll
/home/mrfluffy/Documents/c#/lpr381/obj/Release/net6.0/ref/lpr381.dll
/home/mrfluffy/Documents/c#/lpr381/obj/Release/net6.0/lpr381.pdb
/home/mrfluffy/Documents/c#/lpr381/obj/Release/net6.0/lpr381.genruntimeconfig.cache

Binary file not shown.

View File

@@ -0,0 +1 @@
670f060e3646ff2f7e8cdecd2b3e98bee644fdfb

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,72 @@
{
"format": 1,
"restore": {
"/home/mrfluffy/Documents/c#/lpr381/lpr381.csproj": {}
},
"projects": {
"/home/mrfluffy/Documents/c#/lpr381/lpr381.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "/home/mrfluffy/Documents/c#/lpr381/lpr381.csproj",
"projectName": "lpr381",
"projectPath": "/home/mrfluffy/Documents/c#/lpr381/lpr381.csproj",
"packagesPath": "/home/mrfluffy/.cache/NuGetPackages",
"outputPath": "/home/mrfluffy/Documents/c#/lpr381/obj/",
"projectStyle": "PackageReference",
"configFilePaths": [
"/home/mrfluffy/.nuget/NuGet/NuGet.Config"
],
"originalTargetFrameworks": [
"net6.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"dependencies": {
"ConsoleTables": {
"target": "Package",
"version": "[2.4.2, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Ref",
"version": "[6.0.6, 6.0.6]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/6.0.106/RuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/mrfluffy/.cache/NuGetPackages</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/mrfluffy/.cache/NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.0.2</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="/home/mrfluffy/.cache/NuGetPackages/" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

741
obj/project.assets.json Normal file
View File

@@ -0,0 +1,741 @@
{
"version": 3,
"targets": {
"net6.0": {
"ConsoleTables/2.4.2": {
"type": "package",
"dependencies": {
"System.Reflection.TypeExtensions": "4.3.0"
},
"compile": {
"lib/netcoreapp3.1/ConsoleTables.dll": {}
},
"runtime": {
"lib/netcoreapp3.1/ConsoleTables.dll": {}
}
},
"Microsoft.NETCore.Platforms/1.1.0": {
"type": "package",
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
}
},
"Microsoft.NETCore.Targets/1.1.0": {
"type": "package",
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
}
},
"System.IO/4.3.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading.Tasks": "4.3.0"
},
"compile": {
"ref/netstandard1.5/System.IO.dll": {}
}
},
"System.Reflection/4.3.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.IO": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
},
"compile": {
"ref/netstandard1.5/System.Reflection.dll": {}
}
},
"System.Reflection.Primitives/4.3.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
},
"compile": {
"ref/netstandard1.0/System.Reflection.Primitives.dll": {}
}
},
"System.Reflection.TypeExtensions/4.3.0": {
"type": "package",
"dependencies": {
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
},
"compile": {
"ref/netstandard1.5/System.Reflection.TypeExtensions.dll": {}
},
"runtime": {
"lib/netstandard1.5/System.Reflection.TypeExtensions.dll": {}
}
},
"System.Runtime/4.3.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0"
},
"compile": {
"ref/netstandard1.5/System.Runtime.dll": {}
}
},
"System.Text.Encoding/4.3.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
},
"compile": {
"ref/netstandard1.3/System.Text.Encoding.dll": {}
}
},
"System.Threading.Tasks/4.3.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
},
"compile": {
"ref/netstandard1.3/System.Threading.Tasks.dll": {}
}
}
}
},
"libraries": {
"ConsoleTables/2.4.2": {
"sha512": "0SRFOWYCgFQ0RfAMof2DsGEJHI2YKquCA4X26kKyuG+MG+/2R3NRgRVEqXDMU7eVP69MGDzb1eg4i3/APlIfQg==",
"type": "package",
"path": "consoletables/2.4.2",
"files": [
".nupkg.metadata",
".signature.p7s",
"consoletables.2.4.2.nupkg.sha512",
"consoletables.nuspec",
"lib/net40/ConsoleTables.dll",
"lib/net40/ConsoleTables.pdb",
"lib/netcoreapp3.1/ConsoleTables.dll",
"lib/netcoreapp3.1/ConsoleTables.pdb",
"lib/netstandard1.3/ConsoleTables.dll",
"lib/netstandard1.3/ConsoleTables.pdb"
]
},
"Microsoft.NETCore.Platforms/1.1.0": {
"sha512": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
"type": "package",
"path": "microsoft.netcore.platforms/1.1.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/netstandard1.0/_._",
"microsoft.netcore.platforms.1.1.0.nupkg.sha512",
"microsoft.netcore.platforms.nuspec",
"runtime.json"
]
},
"Microsoft.NETCore.Targets/1.1.0": {
"sha512": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
"type": "package",
"path": "microsoft.netcore.targets/1.1.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/netstandard1.0/_._",
"microsoft.netcore.targets.1.1.0.nupkg.sha512",
"microsoft.netcore.targets.nuspec",
"runtime.json"
]
},
"System.IO/4.3.0": {
"sha512": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
"type": "package",
"path": "system.io/4.3.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net45/_._",
"lib/net462/System.IO.dll",
"lib/portable-net45+win8+wp8+wpa81/_._",
"lib/win8/_._",
"lib/wp80/_._",
"lib/wpa81/_._",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net45/_._",
"ref/net462/System.IO.dll",
"ref/netcore50/System.IO.dll",
"ref/netcore50/System.IO.xml",
"ref/netcore50/de/System.IO.xml",
"ref/netcore50/es/System.IO.xml",
"ref/netcore50/fr/System.IO.xml",
"ref/netcore50/it/System.IO.xml",
"ref/netcore50/ja/System.IO.xml",
"ref/netcore50/ko/System.IO.xml",
"ref/netcore50/ru/System.IO.xml",
"ref/netcore50/zh-hans/System.IO.xml",
"ref/netcore50/zh-hant/System.IO.xml",
"ref/netstandard1.0/System.IO.dll",
"ref/netstandard1.0/System.IO.xml",
"ref/netstandard1.0/de/System.IO.xml",
"ref/netstandard1.0/es/System.IO.xml",
"ref/netstandard1.0/fr/System.IO.xml",
"ref/netstandard1.0/it/System.IO.xml",
"ref/netstandard1.0/ja/System.IO.xml",
"ref/netstandard1.0/ko/System.IO.xml",
"ref/netstandard1.0/ru/System.IO.xml",
"ref/netstandard1.0/zh-hans/System.IO.xml",
"ref/netstandard1.0/zh-hant/System.IO.xml",
"ref/netstandard1.3/System.IO.dll",
"ref/netstandard1.3/System.IO.xml",
"ref/netstandard1.3/de/System.IO.xml",
"ref/netstandard1.3/es/System.IO.xml",
"ref/netstandard1.3/fr/System.IO.xml",
"ref/netstandard1.3/it/System.IO.xml",
"ref/netstandard1.3/ja/System.IO.xml",
"ref/netstandard1.3/ko/System.IO.xml",
"ref/netstandard1.3/ru/System.IO.xml",
"ref/netstandard1.3/zh-hans/System.IO.xml",
"ref/netstandard1.3/zh-hant/System.IO.xml",
"ref/netstandard1.5/System.IO.dll",
"ref/netstandard1.5/System.IO.xml",
"ref/netstandard1.5/de/System.IO.xml",
"ref/netstandard1.5/es/System.IO.xml",
"ref/netstandard1.5/fr/System.IO.xml",
"ref/netstandard1.5/it/System.IO.xml",
"ref/netstandard1.5/ja/System.IO.xml",
"ref/netstandard1.5/ko/System.IO.xml",
"ref/netstandard1.5/ru/System.IO.xml",
"ref/netstandard1.5/zh-hans/System.IO.xml",
"ref/netstandard1.5/zh-hant/System.IO.xml",
"ref/portable-net45+win8+wp8+wpa81/_._",
"ref/win8/_._",
"ref/wp80/_._",
"ref/wpa81/_._",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"system.io.4.3.0.nupkg.sha512",
"system.io.nuspec"
]
},
"System.Reflection/4.3.0": {
"sha512": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
"type": "package",
"path": "system.reflection/4.3.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net45/_._",
"lib/net462/System.Reflection.dll",
"lib/portable-net45+win8+wp8+wpa81/_._",
"lib/win8/_._",
"lib/wp80/_._",
"lib/wpa81/_._",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net45/_._",
"ref/net462/System.Reflection.dll",
"ref/netcore50/System.Reflection.dll",
"ref/netcore50/System.Reflection.xml",
"ref/netcore50/de/System.Reflection.xml",
"ref/netcore50/es/System.Reflection.xml",
"ref/netcore50/fr/System.Reflection.xml",
"ref/netcore50/it/System.Reflection.xml",
"ref/netcore50/ja/System.Reflection.xml",
"ref/netcore50/ko/System.Reflection.xml",
"ref/netcore50/ru/System.Reflection.xml",
"ref/netcore50/zh-hans/System.Reflection.xml",
"ref/netcore50/zh-hant/System.Reflection.xml",
"ref/netstandard1.0/System.Reflection.dll",
"ref/netstandard1.0/System.Reflection.xml",
"ref/netstandard1.0/de/System.Reflection.xml",
"ref/netstandard1.0/es/System.Reflection.xml",
"ref/netstandard1.0/fr/System.Reflection.xml",
"ref/netstandard1.0/it/System.Reflection.xml",
"ref/netstandard1.0/ja/System.Reflection.xml",
"ref/netstandard1.0/ko/System.Reflection.xml",
"ref/netstandard1.0/ru/System.Reflection.xml",
"ref/netstandard1.0/zh-hans/System.Reflection.xml",
"ref/netstandard1.0/zh-hant/System.Reflection.xml",
"ref/netstandard1.3/System.Reflection.dll",
"ref/netstandard1.3/System.Reflection.xml",
"ref/netstandard1.3/de/System.Reflection.xml",
"ref/netstandard1.3/es/System.Reflection.xml",
"ref/netstandard1.3/fr/System.Reflection.xml",
"ref/netstandard1.3/it/System.Reflection.xml",
"ref/netstandard1.3/ja/System.Reflection.xml",
"ref/netstandard1.3/ko/System.Reflection.xml",
"ref/netstandard1.3/ru/System.Reflection.xml",
"ref/netstandard1.3/zh-hans/System.Reflection.xml",
"ref/netstandard1.3/zh-hant/System.Reflection.xml",
"ref/netstandard1.5/System.Reflection.dll",
"ref/netstandard1.5/System.Reflection.xml",
"ref/netstandard1.5/de/System.Reflection.xml",
"ref/netstandard1.5/es/System.Reflection.xml",
"ref/netstandard1.5/fr/System.Reflection.xml",
"ref/netstandard1.5/it/System.Reflection.xml",
"ref/netstandard1.5/ja/System.Reflection.xml",
"ref/netstandard1.5/ko/System.Reflection.xml",
"ref/netstandard1.5/ru/System.Reflection.xml",
"ref/netstandard1.5/zh-hans/System.Reflection.xml",
"ref/netstandard1.5/zh-hant/System.Reflection.xml",
"ref/portable-net45+win8+wp8+wpa81/_._",
"ref/win8/_._",
"ref/wp80/_._",
"ref/wpa81/_._",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"system.reflection.4.3.0.nupkg.sha512",
"system.reflection.nuspec"
]
},
"System.Reflection.Primitives/4.3.0": {
"sha512": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
"type": "package",
"path": "system.reflection.primitives/4.3.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net45/_._",
"lib/portable-net45+win8+wp8+wpa81/_._",
"lib/win8/_._",
"lib/wp80/_._",
"lib/wpa81/_._",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net45/_._",
"ref/netcore50/System.Reflection.Primitives.dll",
"ref/netcore50/System.Reflection.Primitives.xml",
"ref/netcore50/de/System.Reflection.Primitives.xml",
"ref/netcore50/es/System.Reflection.Primitives.xml",
"ref/netcore50/fr/System.Reflection.Primitives.xml",
"ref/netcore50/it/System.Reflection.Primitives.xml",
"ref/netcore50/ja/System.Reflection.Primitives.xml",
"ref/netcore50/ko/System.Reflection.Primitives.xml",
"ref/netcore50/ru/System.Reflection.Primitives.xml",
"ref/netcore50/zh-hans/System.Reflection.Primitives.xml",
"ref/netcore50/zh-hant/System.Reflection.Primitives.xml",
"ref/netstandard1.0/System.Reflection.Primitives.dll",
"ref/netstandard1.0/System.Reflection.Primitives.xml",
"ref/netstandard1.0/de/System.Reflection.Primitives.xml",
"ref/netstandard1.0/es/System.Reflection.Primitives.xml",
"ref/netstandard1.0/fr/System.Reflection.Primitives.xml",
"ref/netstandard1.0/it/System.Reflection.Primitives.xml",
"ref/netstandard1.0/ja/System.Reflection.Primitives.xml",
"ref/netstandard1.0/ko/System.Reflection.Primitives.xml",
"ref/netstandard1.0/ru/System.Reflection.Primitives.xml",
"ref/netstandard1.0/zh-hans/System.Reflection.Primitives.xml",
"ref/netstandard1.0/zh-hant/System.Reflection.Primitives.xml",
"ref/portable-net45+win8+wp8+wpa81/_._",
"ref/win8/_._",
"ref/wp80/_._",
"ref/wpa81/_._",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"system.reflection.primitives.4.3.0.nupkg.sha512",
"system.reflection.primitives.nuspec"
]
},
"System.Reflection.TypeExtensions/4.3.0": {
"sha512": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==",
"type": "package",
"path": "system.reflection.typeextensions/4.3.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net46/System.Reflection.TypeExtensions.dll",
"lib/net462/System.Reflection.TypeExtensions.dll",
"lib/netcore50/System.Reflection.TypeExtensions.dll",
"lib/netstandard1.5/System.Reflection.TypeExtensions.dll",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net46/System.Reflection.TypeExtensions.dll",
"ref/net462/System.Reflection.TypeExtensions.dll",
"ref/netstandard1.3/System.Reflection.TypeExtensions.dll",
"ref/netstandard1.3/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.3/de/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.3/es/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.3/fr/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.3/it/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.3/ja/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.3/ko/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.3/ru/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.3/zh-hans/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.3/zh-hant/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.5/System.Reflection.TypeExtensions.dll",
"ref/netstandard1.5/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.5/de/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.5/es/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.5/fr/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.5/it/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.5/ja/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.5/ko/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.5/ru/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.5/zh-hans/System.Reflection.TypeExtensions.xml",
"ref/netstandard1.5/zh-hant/System.Reflection.TypeExtensions.xml",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"runtimes/aot/lib/netcore50/System.Reflection.TypeExtensions.dll",
"system.reflection.typeextensions.4.3.0.nupkg.sha512",
"system.reflection.typeextensions.nuspec"
]
},
"System.Runtime/4.3.0": {
"sha512": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
"type": "package",
"path": "system.runtime/4.3.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net45/_._",
"lib/net462/System.Runtime.dll",
"lib/portable-net45+win8+wp80+wpa81/_._",
"lib/win8/_._",
"lib/wp80/_._",
"lib/wpa81/_._",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net45/_._",
"ref/net462/System.Runtime.dll",
"ref/netcore50/System.Runtime.dll",
"ref/netcore50/System.Runtime.xml",
"ref/netcore50/de/System.Runtime.xml",
"ref/netcore50/es/System.Runtime.xml",
"ref/netcore50/fr/System.Runtime.xml",
"ref/netcore50/it/System.Runtime.xml",
"ref/netcore50/ja/System.Runtime.xml",
"ref/netcore50/ko/System.Runtime.xml",
"ref/netcore50/ru/System.Runtime.xml",
"ref/netcore50/zh-hans/System.Runtime.xml",
"ref/netcore50/zh-hant/System.Runtime.xml",
"ref/netstandard1.0/System.Runtime.dll",
"ref/netstandard1.0/System.Runtime.xml",
"ref/netstandard1.0/de/System.Runtime.xml",
"ref/netstandard1.0/es/System.Runtime.xml",
"ref/netstandard1.0/fr/System.Runtime.xml",
"ref/netstandard1.0/it/System.Runtime.xml",
"ref/netstandard1.0/ja/System.Runtime.xml",
"ref/netstandard1.0/ko/System.Runtime.xml",
"ref/netstandard1.0/ru/System.Runtime.xml",
"ref/netstandard1.0/zh-hans/System.Runtime.xml",
"ref/netstandard1.0/zh-hant/System.Runtime.xml",
"ref/netstandard1.2/System.Runtime.dll",
"ref/netstandard1.2/System.Runtime.xml",
"ref/netstandard1.2/de/System.Runtime.xml",
"ref/netstandard1.2/es/System.Runtime.xml",
"ref/netstandard1.2/fr/System.Runtime.xml",
"ref/netstandard1.2/it/System.Runtime.xml",
"ref/netstandard1.2/ja/System.Runtime.xml",
"ref/netstandard1.2/ko/System.Runtime.xml",
"ref/netstandard1.2/ru/System.Runtime.xml",
"ref/netstandard1.2/zh-hans/System.Runtime.xml",
"ref/netstandard1.2/zh-hant/System.Runtime.xml",
"ref/netstandard1.3/System.Runtime.dll",
"ref/netstandard1.3/System.Runtime.xml",
"ref/netstandard1.3/de/System.Runtime.xml",
"ref/netstandard1.3/es/System.Runtime.xml",
"ref/netstandard1.3/fr/System.Runtime.xml",
"ref/netstandard1.3/it/System.Runtime.xml",
"ref/netstandard1.3/ja/System.Runtime.xml",
"ref/netstandard1.3/ko/System.Runtime.xml",
"ref/netstandard1.3/ru/System.Runtime.xml",
"ref/netstandard1.3/zh-hans/System.Runtime.xml",
"ref/netstandard1.3/zh-hant/System.Runtime.xml",
"ref/netstandard1.5/System.Runtime.dll",
"ref/netstandard1.5/System.Runtime.xml",
"ref/netstandard1.5/de/System.Runtime.xml",
"ref/netstandard1.5/es/System.Runtime.xml",
"ref/netstandard1.5/fr/System.Runtime.xml",
"ref/netstandard1.5/it/System.Runtime.xml",
"ref/netstandard1.5/ja/System.Runtime.xml",
"ref/netstandard1.5/ko/System.Runtime.xml",
"ref/netstandard1.5/ru/System.Runtime.xml",
"ref/netstandard1.5/zh-hans/System.Runtime.xml",
"ref/netstandard1.5/zh-hant/System.Runtime.xml",
"ref/portable-net45+win8+wp80+wpa81/_._",
"ref/win8/_._",
"ref/wp80/_._",
"ref/wpa81/_._",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"system.runtime.4.3.0.nupkg.sha512",
"system.runtime.nuspec"
]
},
"System.Text.Encoding/4.3.0": {
"sha512": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
"type": "package",
"path": "system.text.encoding/4.3.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net45/_._",
"lib/portable-net45+win8+wp8+wpa81/_._",
"lib/win8/_._",
"lib/wp80/_._",
"lib/wpa81/_._",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net45/_._",
"ref/netcore50/System.Text.Encoding.dll",
"ref/netcore50/System.Text.Encoding.xml",
"ref/netcore50/de/System.Text.Encoding.xml",
"ref/netcore50/es/System.Text.Encoding.xml",
"ref/netcore50/fr/System.Text.Encoding.xml",
"ref/netcore50/it/System.Text.Encoding.xml",
"ref/netcore50/ja/System.Text.Encoding.xml",
"ref/netcore50/ko/System.Text.Encoding.xml",
"ref/netcore50/ru/System.Text.Encoding.xml",
"ref/netcore50/zh-hans/System.Text.Encoding.xml",
"ref/netcore50/zh-hant/System.Text.Encoding.xml",
"ref/netstandard1.0/System.Text.Encoding.dll",
"ref/netstandard1.0/System.Text.Encoding.xml",
"ref/netstandard1.0/de/System.Text.Encoding.xml",
"ref/netstandard1.0/es/System.Text.Encoding.xml",
"ref/netstandard1.0/fr/System.Text.Encoding.xml",
"ref/netstandard1.0/it/System.Text.Encoding.xml",
"ref/netstandard1.0/ja/System.Text.Encoding.xml",
"ref/netstandard1.0/ko/System.Text.Encoding.xml",
"ref/netstandard1.0/ru/System.Text.Encoding.xml",
"ref/netstandard1.0/zh-hans/System.Text.Encoding.xml",
"ref/netstandard1.0/zh-hant/System.Text.Encoding.xml",
"ref/netstandard1.3/System.Text.Encoding.dll",
"ref/netstandard1.3/System.Text.Encoding.xml",
"ref/netstandard1.3/de/System.Text.Encoding.xml",
"ref/netstandard1.3/es/System.Text.Encoding.xml",
"ref/netstandard1.3/fr/System.Text.Encoding.xml",
"ref/netstandard1.3/it/System.Text.Encoding.xml",
"ref/netstandard1.3/ja/System.Text.Encoding.xml",
"ref/netstandard1.3/ko/System.Text.Encoding.xml",
"ref/netstandard1.3/ru/System.Text.Encoding.xml",
"ref/netstandard1.3/zh-hans/System.Text.Encoding.xml",
"ref/netstandard1.3/zh-hant/System.Text.Encoding.xml",
"ref/portable-net45+win8+wp8+wpa81/_._",
"ref/win8/_._",
"ref/wp80/_._",
"ref/wpa81/_._",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"system.text.encoding.4.3.0.nupkg.sha512",
"system.text.encoding.nuspec"
]
},
"System.Threading.Tasks/4.3.0": {
"sha512": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
"type": "package",
"path": "system.threading.tasks/4.3.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net45/_._",
"lib/portable-net45+win8+wp8+wpa81/_._",
"lib/win8/_._",
"lib/wp80/_._",
"lib/wpa81/_._",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net45/_._",
"ref/netcore50/System.Threading.Tasks.dll",
"ref/netcore50/System.Threading.Tasks.xml",
"ref/netcore50/de/System.Threading.Tasks.xml",
"ref/netcore50/es/System.Threading.Tasks.xml",
"ref/netcore50/fr/System.Threading.Tasks.xml",
"ref/netcore50/it/System.Threading.Tasks.xml",
"ref/netcore50/ja/System.Threading.Tasks.xml",
"ref/netcore50/ko/System.Threading.Tasks.xml",
"ref/netcore50/ru/System.Threading.Tasks.xml",
"ref/netcore50/zh-hans/System.Threading.Tasks.xml",
"ref/netcore50/zh-hant/System.Threading.Tasks.xml",
"ref/netstandard1.0/System.Threading.Tasks.dll",
"ref/netstandard1.0/System.Threading.Tasks.xml",
"ref/netstandard1.0/de/System.Threading.Tasks.xml",
"ref/netstandard1.0/es/System.Threading.Tasks.xml",
"ref/netstandard1.0/fr/System.Threading.Tasks.xml",
"ref/netstandard1.0/it/System.Threading.Tasks.xml",
"ref/netstandard1.0/ja/System.Threading.Tasks.xml",
"ref/netstandard1.0/ko/System.Threading.Tasks.xml",
"ref/netstandard1.0/ru/System.Threading.Tasks.xml",
"ref/netstandard1.0/zh-hans/System.Threading.Tasks.xml",
"ref/netstandard1.0/zh-hant/System.Threading.Tasks.xml",
"ref/netstandard1.3/System.Threading.Tasks.dll",
"ref/netstandard1.3/System.Threading.Tasks.xml",
"ref/netstandard1.3/de/System.Threading.Tasks.xml",
"ref/netstandard1.3/es/System.Threading.Tasks.xml",
"ref/netstandard1.3/fr/System.Threading.Tasks.xml",
"ref/netstandard1.3/it/System.Threading.Tasks.xml",
"ref/netstandard1.3/ja/System.Threading.Tasks.xml",
"ref/netstandard1.3/ko/System.Threading.Tasks.xml",
"ref/netstandard1.3/ru/System.Threading.Tasks.xml",
"ref/netstandard1.3/zh-hans/System.Threading.Tasks.xml",
"ref/netstandard1.3/zh-hant/System.Threading.Tasks.xml",
"ref/portable-net45+win8+wp8+wpa81/_._",
"ref/win8/_._",
"ref/wp80/_._",
"ref/wpa81/_._",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"system.threading.tasks.4.3.0.nupkg.sha512",
"system.threading.tasks.nuspec"
]
}
},
"projectFileDependencyGroups": {
"net6.0": [
"ConsoleTables >= 2.4.2"
]
},
"packageFolders": {
"/home/mrfluffy/.cache/NuGetPackages": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "/home/mrfluffy/Documents/c#/lpr381/lpr381.csproj",
"projectName": "lpr381",
"projectPath": "/home/mrfluffy/Documents/c#/lpr381/lpr381.csproj",
"packagesPath": "/home/mrfluffy/.cache/NuGetPackages",
"outputPath": "/home/mrfluffy/Documents/c#/lpr381/obj/",
"projectStyle": "PackageReference",
"configFilePaths": [
"/home/mrfluffy/.nuget/NuGet/NuGet.Config"
],
"originalTargetFrameworks": [
"net6.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"dependencies": {
"ConsoleTables": {
"target": "Package",
"version": "[2.4.2, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Ref",
"version": "[6.0.6, 6.0.6]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/6.0.106/RuntimeIdentifierGraph.json"
}
}
}
}

20
obj/project.nuget.cache Normal file
View File

@@ -0,0 +1,20 @@
{
"version": 2,
"dgSpecHash": "UsG+n8no52tNULnArv36wfnSHuyNsJtVw+cLkcJKa4zAucFyRBa7qGlEyQpU5Roj2w954zGpsMoMYS9LaYexCw==",
"success": true,
"projectFilePath": "/home/mrfluffy/Documents/c#/lpr381/lpr381.csproj",
"expectedPackageFiles": [
"/home/mrfluffy/.cache/NuGetPackages/consoletables/2.4.2/consoletables.2.4.2.nupkg.sha512",
"/home/mrfluffy/.cache/NuGetPackages/microsoft.netcore.platforms/1.1.0/microsoft.netcore.platforms.1.1.0.nupkg.sha512",
"/home/mrfluffy/.cache/NuGetPackages/microsoft.netcore.targets/1.1.0/microsoft.netcore.targets.1.1.0.nupkg.sha512",
"/home/mrfluffy/.cache/NuGetPackages/system.io/4.3.0/system.io.4.3.0.nupkg.sha512",
"/home/mrfluffy/.cache/NuGetPackages/system.reflection/4.3.0/system.reflection.4.3.0.nupkg.sha512",
"/home/mrfluffy/.cache/NuGetPackages/system.reflection.primitives/4.3.0/system.reflection.primitives.4.3.0.nupkg.sha512",
"/home/mrfluffy/.cache/NuGetPackages/system.reflection.typeextensions/4.3.0/system.reflection.typeextensions.4.3.0.nupkg.sha512",
"/home/mrfluffy/.cache/NuGetPackages/system.runtime/4.3.0/system.runtime.4.3.0.nupkg.sha512",
"/home/mrfluffy/.cache/NuGetPackages/system.text.encoding/4.3.0/system.text.encoding.4.3.0.nupkg.sha512",
"/home/mrfluffy/.cache/NuGetPackages/system.threading.tasks/4.3.0/system.threading.tasks.4.3.0.nupkg.sha512",
"/home/mrfluffy/.cache/NuGetPackages/microsoft.aspnetcore.app.ref/6.0.6/microsoft.aspnetcore.app.ref.6.0.6.nupkg.sha512"
],
"logs": []
}

View File

@@ -1,38 +0,0 @@
use std::io::{self, Write};
pub fn string_input(prompt: &str) -> String {
print!("{}", prompt);
let mut input = String::new();
let _ = io::stdout().flush();
io::stdin()
.read_line(&mut input)
.expect("Error reading from STDIN");
input.trim().to_string()
}
pub fn int_input(prompt: &str) -> usize {
print!("{}", prompt);
let mut input = String::new();
let _ = io::stdout().flush();
io::stdin()
.read_line(&mut input)
.expect("Error reading from STDIN");
//try to parse the input as usize else return max usize
match input.trim().parse::<usize>() {
Ok(i) => i,
Err(_) => {
usize::max_value()
}
}
}
pub fn float_input(prompt: &str) -> f64 {
print!("{}", prompt);
let mut input = String::new();
let _ = io::stdout().flush();
io::stdin()
.read_line(&mut input)
.expect("Error reading from STDIN");
//try to parse the input as f64 else return max f64
let output = input.trim().parse::<f64>().unwrap();
output
}

View File

@@ -1,2 +0,0 @@
pub mod table_printers;
pub mod input;

View File

@@ -1,49 +0,0 @@
use prettytable::{Table, Row, Cell};
use std::vec::Vec;
pub fn print_first_table(table: &Vec<Vec<f64>>){
let mut print_table = Table::new();
let mut titles: Vec<Cell> = vec![];
for title in 0..table[0].len(){
if title == table[1].len() - 1 {
titles.push(Cell::new("rhs"));
} else if title < table[0].len() / 2 {
titles.push(Cell::new(&format!("x{}",title+1)));
} else {
titles.push(Cell::new(&format!("s{}",title - table[0].len() / 2 + 1)));
}
}
print_table.add_row(Row::new(titles));
for i in 0..table.len() {
let mut cells: Vec<Cell> = vec![];
for j in 0..table[i].len(){
cells.push(Cell::new(&table[i][j].to_string()));
};
print_table.add_row(Row::new(cells));
};
print_table.printstd();
}
pub fn print_table(table: &Vec<Vec<f64>>,pivot_col: &usize, pivot_row: &usize) {
let mut print_table = Table::new();
let mut titles: Vec<Cell> = vec![];
for title in 0..table[0].len(){
if title == table[0].len() - 1 {
titles.push(Cell::new("rhs"));
} else if title < table[0].len() / 2 {
titles.push(Cell::new(&format!("x{}",title+1)));
} else {
titles.push(Cell::new(&format!("s{}",title - table[0].len() / 2 + 1)));
}
}
print_table.add_row(Row::new(titles));
for i in 0..table.len() {
let mut cells: Vec<Cell> = vec![];
for j in 0..table[i].len(){
cells.push(Cell::new(&table[i][j].to_string()).style_spec(if j == *pivot_col || i == *pivot_row+1{ "Fgb"} else {""}));
};
print_table.add_row(Row::new(cells));
};
print_table.printstd();
}

View File

@@ -1,6 +0,0 @@
mod simplex;
mod helpers;
use simplex::simplex::simplex;
fn main() {
simplex();
}

View File

@@ -1 +0,0 @@
pub mod simplex;

View File

@@ -1,175 +0,0 @@
use std::vec::Vec;
use crate::helpers::table_printers::{print_table, print_first_table};
use crate::helpers::input::{
string_input,
int_input,
float_input,
};
struct Coll {
restriction: Vec<f64>,
sign: String,
rhs: f64,
}
pub fn simplex() {
let mut stuff: Vec<String> = ["Red".to_string(),"Green".to_string(),"Blue".to_string()].to_vec();
stuff.push("Yellow".to_string());
let amount_restrictions = int_input("Enter amount of restrictions: ");
let amount_variables = int_input("Enter amount of variables: ");
let mut max_z: Vec<f64> = vec![];
for z in 0..amount_variables {
let input = float_input(&format!("{}x{}:","Enter max value of variable ",z));
max_z.push(input);
}
let all_colls = fill_coll(amount_restrictions, amount_variables);
let mut table: Vec<Vec<f64>> = vec![];
//fill in max_z with 0 for the rest of the table till size amount_restrictions
for _i in 0..amount_restrictions {
max_z.push(0.0);
}
table.push(max_z);
let mut count = 0;
for mut coll in all_colls{
for i in 0..amount_restrictions {
//push 1 if i = count
if i == count {
coll.restriction.push(1.0);
} else {
coll.restriction.push(0.0);
}
}
coll.restriction.push(coll.rhs);
count += 1;
table.push(coll.restriction);
}
println!("t*");
print_first_table(&table);
println!("");
println!("ti");
let mut table = flip_z(&mut table);
//print_table(&table);
//pivot table until table is optimal
// table is optimal when z has no negative values
println!("");
let mut optimal = false;
while !optimal {
let pivot_col = find_pivot_col(&table);
let ratio = ratio_test(&table, pivot_col);
let pivot_row = find_pivot_row(&ratio);
print_table(&table,&pivot_col,&pivot_row);
table = pivot_table(&mut table, pivot_row, pivot_col);
println!("");
if check_optimal(&table){
print_table(&table, &pivot_col, &pivot_row);
optimal = true;
}
}
}
fn check_optimal(table: &Vec<Vec<f64>>) -> bool {
// tebale is optimal when z has no negative values
let mut z_index = 0;
for i in 0..table[0].len() {
if table[0][i] < 0.0 {
z_index = i;
}
}
if z_index == 0 {
return true;
} else {
return false;
}
}
fn pivot_table(table: &mut Vec<Vec<f64>>, pivot_row: usize, pivot_col: usize) -> Vec<Vec<f64>> {
// firnd the pivot point
let mut new_table = table.clone();
let pivot_point = table[pivot_row+1][pivot_col];
// divide pivot row by pivot point
for i in 0..table[pivot_row+1].len() {
new_table[pivot_row+1][i] = table[pivot_row+1][i] / pivot_point;
};
// current possition-(pivot_row*new_table pivot_point)
for i in 0..table.len() {
if i != pivot_row+1 {
let current_possition = table[i][pivot_col];
for j in 0..table[i].len() {
new_table[i][j] = table[i][j] - (current_possition * new_table[pivot_row+1][j]);
}
}
}
return new_table;
}
fn flip_z(table: &mut Vec<Vec<f64>>) -> Vec<Vec<f64>>{
for i in 0..table[0].len(){
if table[0][i] > 0.0 {
table[0][i] = -table[0][i];
}
}
table[0].push(0.0);
return table.to_vec();
}
fn find_pivot_col(table: &Vec<Vec<f64>>) -> usize {
let mut largest = 0.0;
let mut largest_index = 0;
for i in 0..table[0].len() {
if table[0][i] < largest{
largest = table[0][i];
largest_index = i;
}
}
return largest_index;
}
fn ratio_test(table: &Vec<Vec<f64>>, test_col: usize) -> Vec<f64> {
let mut ratios: Vec<f64> = vec![];
for i in 1..table.len() {
if table[i][test_col] != 0.0 {
ratios.push(table[i][table[i].len() - 1] / table[i][test_col]);
} else {
ratios.push(std::f64::MAX);
}
}
return ratios;
}
fn find_pivot_row(ratios: &Vec<f64>) -> usize {
//find the index of the smallest ratio
let mut smallest = std::f64::MAX;
let mut smallest_index = 0;
for i in 0..ratios.len() {
if ratios[i] < smallest && ratios[i] > 0.0 {
smallest = ratios[i];
smallest_index = i;
}
}
return smallest_index;
}
fn fill_coll(amount_restrictions: usize, amount_vars: usize) -> Vec<Coll> {
let mut colls : Vec<Coll> = vec![];
for _restriction in 0..amount_restrictions {
let mut restrictions:Vec<f64> = vec![];
let mut count = 1;
for _var in 0..amount_vars {
let input = float_input(&format!("{}x{}:","Enter restriction ",count));
restrictions.push(input.clone());
count += 1;
}
let sign_local = string_input("Enter sign: ");
let rhs_local = float_input("Enter rhs: ");
let coll_local = Coll {
restriction: restrictions,
sign: sign_local,
rhs: rhs_local,
};
colls.push(coll_local);
}
colls
}