From 4519869955c7889ff4b91132ae06e6d92b70d307 Mon Sep 17 00:00:00 2001
From: Alexandre Favre <alexandre.favre@etu.hesge.ch>
Date: Thu, 9 Jan 2020 14:33:17 +0100
Subject: [PATCH] End begging tp

---
 base_tp/.gitignore               |  3 ++
 base_tp/build.sbt                | 73 ++++++++++++++++++++++++++++++++
 base_tp/project/build.properties |  1 +
 base_tp/src/intro/Euclid.scala   | 21 +++++++++
 ex1.scala                        | 14 ++++++
 5 files changed, 112 insertions(+)
 create mode 100644 base_tp/.gitignore
 create mode 100644 base_tp/build.sbt
 create mode 100644 base_tp/project/build.properties
 create mode 100644 base_tp/src/intro/Euclid.scala
 create mode 100755 ex1.scala

diff --git a/base_tp/.gitignore b/base_tp/.gitignore
new file mode 100644
index 0000000..382c6d7
--- /dev/null
+++ b/base_tp/.gitignore
@@ -0,0 +1,3 @@
+*~
+
+target/
diff --git a/base_tp/build.sbt b/base_tp/build.sbt
new file mode 100644
index 0000000..60e99e2
--- /dev/null
+++ b/base_tp/build.sbt
@@ -0,0 +1,73 @@
+organization := "ch.hepia"
+
+name := "tpscala"
+
+version := "2018"
+
+scalaVersion := "2.12.6"
+
+libraryDependencies ++= Seq(
+  "org.scalatest" %% "scalatest" % "3.0.5" % "test"
+)
+
+fork in run := true
+
+javaOptions in run += "-Xmx2G"
+
+
+scalacOptions ++= Seq(
+  "-deprecation",                      // Emit warning and location for usages of deprecated APIs.
+  "-encoding", "utf-8",                // Specify character encoding used by source files.
+  "-explaintypes",                     // Explain type errors in more detail.
+  "-feature",                          // Emit warning and location for usages of features that should be imported explicitly.
+  "-language:existentials",            // Existential types (besides wildcard types) can be written and inferred
+  "-language:higherKinds",             // Allow higher-kinded types
+  "-unchecked",                        // Enable additional warnings where generated code depends on assumptions.
+  "-Xcheckinit",                       // Wrap field accessors to throw an exception on uninitialized access.
+  "-Xfatal-warnings",                  // Fail the compilation if there are any warnings.
+  "-Xlint:adapted-args",               // Warn if an argument list is modified to match the receiver.
+  "-Xlint:by-name-right-associative",  // By-name parameter of right associative operator.
+  "-Xlint:constant",                   // Evaluation of a constant arithmetic expression results in an error.
+  "-Xlint:delayedinit-select",         // Selecting member of DelayedInit.
+  "-Xlint:doc-detached",               // A Scaladoc comment appears to be detached from its element.
+  "-Xlint:inaccessible",               // Warn about inaccessible types in method signatures.
+  "-Xlint:infer-any",                  // Warn when a type argument is inferred to be `Any`.
+  "-Xlint:missing-interpolator",       // A string literal appears to be missing an interpolator id.
+  "-Xlint:nullary-override",           // Warn when non-nullary `def f()' overrides nullary `def f'.
+  "-Xlint:nullary-unit",               // Warn when nullary methods return Unit.
+  "-Xlint:option-implicit",            // Option.apply used implicit view.
+  "-Xlint:package-object-classes",     // Class or object defined in package object.
+  "-Xlint:poly-implicit-overload",     // Parameterized overloaded implicit methods are not visible as view bounds.
+  "-Xlint:private-shadow",             // A private field (or class parameter) shadows a superclass field.
+  "-Xlint:stars-align",                // Pattern sequence wildcard must align with sequence component.
+  "-Xlint:type-parameter-shadow",      // A local type parameter shadows a type already in scope.
+  "-Xlint:unsound-match",              // Pattern match may not be typesafe.
+  "-Yno-adapted-args",                 // Do not adapt an argument list (either by inserting () or creating a tuple) to match the receiver.
+  "-Ypartial-unification",             // Enable partial unification in type constructor inference
+  "-Ywarn-dead-code",                  // Warn when dead code is identified.
+  "-Ywarn-extra-implicit",             // Warn when more than one implicit parameter section is defined.
+  "-Ywarn-inaccessible",               // Warn about inaccessible types in method signatures.
+  "-Ywarn-infer-any",                  // Warn when a type argument is inferred to be `Any`.
+  "-Ywarn-nullary-override",           // Warn when non-nullary `def f()' overrides nullary `def f'.
+  "-Ywarn-nullary-unit",               // Warn when nullary methods return Unit.
+  "-Ywarn-numeric-widen",              // Warn when numerics are widened.
+  "-Ywarn-unused:implicits",           // Warn if an implicit parameter is unused.
+  "-Ywarn-unused:imports",             // Warn if an import selector is not referenced.
+  "-Ywarn-unused:locals",              // Warn if a local definition is unused.
+  "-Ywarn-unused:params",              // Warn if a value parameter is unused.
+  "-Ywarn-unused:patvars",             // Warn if a variable bound in a pattern is unused.
+  "-Ywarn-unused:privates",            // Warn if a private member is unused.
+  "-Ywarn-value-discard"               // Warn when non-Unit expression results are unused.
+)
+
+scalacOptions in (Compile, console) --= Seq("-Ywarn-unused:imports", "-Xfatal-warnings")
+
+
+
+scalaSource in Compile := baseDirectory.value / "src"
+
+javaSource in Compile := baseDirectory.value / "java" / "src" 
+
+scalaSource in Test := baseDirectory.value / "test"
+
+    
diff --git a/base_tp/project/build.properties b/base_tp/project/build.properties
new file mode 100644
index 0000000..cc041cd
--- /dev/null
+++ b/base_tp/project/build.properties
@@ -0,0 +1 @@
+sbt.version=1.2.1
\ No newline at end of file
diff --git a/base_tp/src/intro/Euclid.scala b/base_tp/src/intro/Euclid.scala
new file mode 100644
index 0000000..657a180
--- /dev/null
+++ b/base_tp/src/intro/Euclid.scala
@@ -0,0 +1,21 @@
+package ch.unige.hepia.tp
+
+object Euclid extends App {
+
+  // Implémenter correctement cette fonction
+  def gcd( a: Int, b: Int ): Int = {
+    if (b==0){
+      a
+    } else {
+        gcd(b, a % b)
+    }
+  }
+
+
+
+  println( gcd( 100, 30 ) )  //=> 10
+  println( gcd( 30, 100 ) )  //=> 10
+  println( gcd( 12, 3732 ) ) //=> 12
+  println( gcd( 1, 3732 ) )  //=> 1
+  println( gcd( 25, 3732 ) ) //)> 1
+}
diff --git a/ex1.scala b/ex1.scala
new file mode 100755
index 0000000..589ff3c
--- /dev/null
+++ b/ex1.scala
@@ -0,0 +1,14 @@
+def interet(years:Int) = {
+  var start = 10000.0
+  for(i <- 0 until years){
+    start += 1000
+    start *= 1.015
+  }
+  start
+}
+
+import java.util.Calendar
+
+var date = Calendar.getInstance().getTime()
+
+
-- 
GitLab