Commit eaf92923 authored by Falko Schumann's avatar Falko Schumann 💩

Merge branch 'feature/ueberarbeitung-subsegana' into develop

parents 3efe37f0 baf5dca0
/.gradle/
/bin/
/build/
/.settings/
# Gradle
build/
.gradle/
gradle.properties
# IntelliJ IDEA
out/
.idea/
*.iml
# Eclipse
bin/
.settings/
.project
.checkstyle
.classpath
.checkstyle
.pmd
.project
iav-fuzzylib-build:
image:
openjdk:8-jdk-alpine
script:
- ./gradlew build
image: openjdk:8
build:
stage: build
script: ./gradlew assemble
test:
stage: test
script: ./gradlew check
artifacts:
name: test-reports.zip
paths:
- build/reports
when: on_failure
expire_in: 1 week
Versionsverlauf
=============================================
Änderungsprotkoll
=================
Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.
Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/),
und dieses Projekt folgt [Semantic Versioning](https://semver.org/lang/de/).
## [Noch nicht veröffentlicht]
## [1.8.2]
## [3.0.0] - 2018-12-12
### Geändert
* Branch Version 1.x und 2.x zusammengeführt.
* "Runder" Wertebereich wie Norden bei Windrichtung kann alternativ mit zwei
gleichnamigen Fuzzy-Sets (Rampen) definiert werden.
* API modernisiert (Java 8).
* API auf notwendige Funktionen reduziert. Nicht notwendige Funktionen
entfernt.
### Entfernt
* Abhängigkeit zu Funclib BitCtrl entfernt.
### Behoben
* Ä151: Subsegmentanalyse publiziert unnötig viele Datensätze.
* Fuzzyfizierung und Defuzzyfizierung arbeitet nun mit `double`, statt `int`.
Somit können nun auch Messwerte bearbeitet werden, die Nachkommastellen
haben, wie Niederschlagsintentsität und Windgeschwindigkeit.
- Kleinere Änderungen im Build, Kodierung der Property-Dateien korrigiert, Build durch FTB und Bereitstellung auf NERZ-Repositories
## [1.8.2] - 2018-01-18
## [1.8.1]
### Geändert
- NERZ: Umstellung auf Gradle, Build durch FTB und Bereitstellung auf NERZ-Repositories
* Kleinere Änderungen im Build, Kodierung der Property-Dateien korrigiert,
Build durch FTB und Bereitstellung auf NERZ-Repositories.
## 1.8.0
## [1.8.1] - 2017-12-29
- Umstellung auf Java 8 und UTF-8
### Geändert
* NERZ: Umstellung auf Gradle, Build durch FTB und Bereitstellung auf
NERZ-Repositories.
## 1.8.0 - 2017-08-15
### Geändert
* Umstellung auf Java 8 und UTF-8.
## 1.7.0
- Umstellung auf Maven-Build
### Geändert
* Umstellung auf Maven-Build.
## 1.6.2
- Mantis #2352: Meldung bei fehlenden Termen ergänzt, so dass sie jetzt auch
### Hinzugefügt
* Mantis #2352: Meldung bei fehlenden Termen ergänzt, so dass sie jetzt auch
die Variable nennen, bei der der Term vermisst wird.
- Verbesserung der Stabilität gegen Fehler beim Parametrieren durch den
### Behoben
* Verbesserung der Stabilität gegen Fehler beim Parametrieren durch den
Nutzer.
## 1.6.1
- Logausgaben beim Unit-Test werden wieder angezeigt.
### Behoben
* Logausgaben beim Unit-Test werden wieder angezeigt.
## 1.6.0
- Betriebsmeldungen um Systemobjekt in ID ergänzen, wenn sinnvoll.
(Mantis #2091)
- Quelltext kompatibler mit Java 6 gemacht.
### Geändert
* Mantis #2091: Betriebsmeldungen um Systemobjekt in ID ergänzen, wenn
sinnvoll.
* Quelltext kompatibler mit Java 6 gemacht.
## 1.5.0
- Betriebsinformation und Prüfprozedur liegen jetzt im Zustand "akzeptiert"
### Hinzugefügt
* Betriebsinformation und Prüfprozedur liegen jetzt im Zustand "akzeptiert"
vor.
## 1.4.1
- Betriebsinformation aktualisiert.
### Geändert
* Betriebsinformation aktualisiert.
## 1.4.0
- Prüfprozedur und Prüfprotokoll in Release aufgenommen
- Betriebsinformation in Release aufgenommen
### Hinzugefügt
* Prüfprozedur und Prüfprotokoll in Release aufgenommen.
* Betriebsinformation in Release aufgenommen.
## 1.3.0
- Anpassung an überarbeitetet Funktionsbibliothek de.bsvrz.sys.funclib.bitctrl
### Geändert
* Anpassung an überarbeitete Funktionsbibliothek de.bsvrz.sys.funclib.bitctrl.
## 1.2.0
- Anpassung an die neue Paketstruktur de.bsvrz.*
### Geändert
* Anpassung an die neue Paketstruktur de.bsvrz.*.
## 1.1.0
- Noch offene Datenkatalogänderungen durchgeführt.
- Abarbeitung der Wissensbasen überarbeitet
- Modellierung der Systemobjekte abstrahiert. Siehe auch im Paket
de.bsvrz.sys.funclib.bitctrl.modell
### Geändert
* Noch offene Datenkatalogänderungen durchgeführt.
* Abarbeitung der Wissensbasen überarbeitet.
* Modellierung der Systemobjekte abstrahiert. Siehe auch im Paket
`de.bsvrz.sys.funclib.bitctrl.modell`.
## 1.0.3
- Änderung an Handler-Überprüfung im Interpreter nachvollzogen
### Geändert
* Änderung an Handler-Überprüfung im Interpreter nachvollzogen.
## 1.0.2
- Hilfsfunktionen für Straßensubsegmentanalyse hinzugefügt
### Hinzugefügt
* Hilfsfunktionen für Straßensubsegmentanalyse hinzugefügt.
## 1.0.1
- Änderung der Paketstruktur in de.bsvrz.sys.funclib nachvollzogen
- Abhängiges Paket de.bsvrz.sys.funclib(.bitctrl) aus Release ausgegliedert
### Geändert
* Änderung der Paketstruktur in de.bsvrz.sys.funclib nachvollzogen.
* Abhängiges Paket de.bsvrz.sys.funclib(.bitctrl) aus Release ausgegliedert.
## 1.0.0
- Erste Auslieferung
### Hinzugefügt
* Erste Auslieferung.
[Noch nicht veröffentlicht]: https://gitlab.nerz-ev.de/ERZ/SWE_de.bsvrz.iav.fuzzylib/compare/v1.8.2...HEAD
[1.8.2]:
https://gitlab.nerz-ev.de/ERZ/SWE_de.bsvrz.iav.fuzzylib/compare/v1.8.1...v1.8.2
[1.8.1]:
https://gitlab.nerz-ev.de/ERZ/SWE_de.bsvrz.iav.fuzzylib/compare/v1.8.0...v1.8.1
[Noch nicht veröffentlicht]: https://gitlab.nerz-ev.de/ERZ/SWE_de.bsvrz.iav.fuzzylib/compare/v3.0.0...HEAD
[3.0.0]: https://gitlab.nerz-ev.de/ERZ/SWE_de.bsvrz.iav.fuzzylib/compare/v1.8.2...v3.0.0
[1.8.2]: https://gitlab.nerz-ev.de/ERZ/SWE_de.bsvrz.iav.fuzzylib/compare/v1.8.1...v1.8.2
[1.8.1]: https://gitlab.nerz-ev.de/ERZ/SWE_de.bsvrz.iav.fuzzylib/compare/v1.8.0...v1.8.1
Hinweise zur Bearbeitung / Beteiligung
======================================
Für Änderungen an dem Projekt ist zuerst ein Eintrag (Issue) mit dem Tag "Feature-Wunsch" oder "Bug"
anzulegen, damit die übernommen Änderungen auch einem Problem und einer potentiell erfolgten Diskussion
zugeordnet werden können. Solange das Fehler- und Änderungsmanagement noch über die bisherigen NERZ-Bugtracker
abgewickelt wird, ist zudem eine Referenz auf den dortigen Eintrag vorzunehmen.
Für Änderungen an dem Projekt ist zuerst ein Eintrag (Issue) mit dem Tag
"Feature-Wunsch" oder "Bug" anzulegen, damit die übernommen Änderungen auch
einem Problem und einer potentiell erfolgten Diskussion zugeordnet werden
können. Solange das Fehler- und Änderungsmanagement noch über die bisherigen
NERZ-Bugtracker abgewickelt wird, ist zudem eine Referenz auf den dortigen
Eintrag vorzunehmen.
Vor der Bearbeitung sollte man den entsprechenden Eintrag persönlich übernehmen
und einen Bugfix- oder Feature-Branch anlegen.
und einen Bugfix-Branch oder Feature-Branch anlegen.
Feature-Branches werden benannt als "feature/{name}", Bugfix-Branches als "hotfix/{name}".
Der Name sollte beschreiben, was innerhalb des Branches geändert wird und **nicht den Name des Bearbeiters**.
Feature-Branches werden benannt als "feature/{name}", Bugfix-Branches als
"hotfix/{name}". Der Name sollte beschreiben, was innerhalb des Branches
geändert wird und __nicht den Name des Bearbeiters__.
Feature-Wünsche werden auf Basis des "develop"-Branches umgesetzt und führen letztendlich zu einem Release einer
neuen Version auf dem zweiten Level, d.h. 0.1.0 wird mindestens 0.2.0 oder in der Hauptversion, d. h. aus z. B. 1.x.y wird 2.0.0, wenn **keine** Abwärtskompatibilität besteht.
Feature-Wünsche werden auf Basis des "develop"-Branches umgesetzt und führen
letztendlich zu einem Release einer neuen Version auf dem zweiten Level, d.h.
0.1.0 wird mindestens 0.2.0 oder in der Hauptversion, d.h. aus z.B. 1.x.y wird
2.0.0, wenn __keine__ Abwärtskompatibilität besteht.
Bugfixes sollten auf dem "master"-Branch beruhen und führen zu einer neuen Version auf dem dritten Level, d.h. aus 0.1.0 wird 0.1.1.
Die Änderungen werden dann natürlich auch in den "develop"-Branch gemerged. Damit können Bugfixes kurzfristig erfolgen
ohne den Zwang gleich alle Änderungen, die sich schon im Develop-Zweig befinden mit zu veröffentlichen.
Bugfixes sollten auf dem "master"-Branch beruhen und führen zu einer neuen
Version auf dem dritten Level, d.h. aus 0.1.0 wird 0.1.1. Die Änderungen werden
dann natürlich auch in den "develop"-Branch gemerged. Damit können Bugfixes
kurzfristig erfolgen ohne den Zwang gleich alle Änderungen, die sich schon im
Develop-Zweig befinden mit zu veröffentlichen.
Werden im Rahmen eines Auftrags mehrere Feature-Wünsche oder Bugfixes bearbeitet, kann auch einheitlich vom "develop"-Branch gemerged werden (konkrete Abstimmung im Zweifelsfall mit der NERZ-FTB).
Werden im Rahmen eines Auftrags mehrere Feature-Wünsche oder Bugfixes
bearbeitet, kann auch einheitlich vom "develop"-Branch gemerged werden (konkrete
Abstimmung im Zweifelsfall mit der NERZ-FTB).
Branches sollten nur für einen **einzelnen Eintrag** angelegt werden.
Die Branches können nach dem Merge in den Ursprungs-Branch entfernt werden (Das Löschen erfolgt automatisch,
wenn der entsprechende Haken beim Anlegen des Merge-Request gesetzt wird).
Branches sollten nur für einen __einzelnen Eintrag__ angelegt werden. Die
Branches können nach dem Merge in den Ursprungs-Branch entfernt werden (Das
Löschen erfolgt automatisch, wenn der entsprechende Haken beim Anlegen des
Merge-Request gesetzt wird).
Ein Merge-Request sollte folgende Punkte berücksichtigen:
- die Änderungen, die mit dem Request verbunden sind sollten in kurzer prägnanter Form in das CHANGELOG-File eingetragen werden. Der Eintrag erfolgt dabei im Abschnitt "Noch nicht veröffentlicht". Die Versionsnummer wird dort erst beim Release ergänzt (also letztlich bei der Übernahme durch die NERZ-FTB).
- wenn es notwendig ist, neue Features oder Änderungen zu beschreiben muss das README-File angepasst werden
- Änderungen am Code sollten keinen auskommentierten alten Code enthalten, für den Zugriff auf die Historie ist ja GIT vorgesehen
- die bearbeiteten Einträge sollten im Kommentar für den jeweiligen Commit oder für den Merge-Request mit "Fixes #{Eintragsnummer}" um die Zuordnung zu erhalten und das automatische Schließen zu ermöglichen
**Abgelehnte Merge-Request brauchen nicht gelöscht werden!**
Angemerkte und diskutierte Probleme, die eine Übernahme verhindern, sollten stattdessen bearbeitet werden bis der Merge-Request übernommen werden kann. **Ein neuer Request ist nicht erforderlich!**
\ No newline at end of file
* Die Änderungen, die mit dem Request verbunden sind sollten in kurzer
prägnanter Form in das CHANGELOG-File eingetragen werden. Der Eintrag
erfolgt dabei im Abschnitt "Noch nicht veröffentlicht". Die Versionsnummer
wird dort erst beim Release ergänzt (also letztlich bei der Übernahme durch
die NERZ-FTB).
* Wenn es notwendig ist, neue Features oder Änderungen zu beschreiben muss das
README-File angepasst werden.
* Änderungen am Code sollten keinen auskommentierten alten Code enthalten, für
den Zugriff auf die Historie ist ja Git vorgesehen.
* Die bearbeiteten Einträge sollten im Kommentar für den jeweiligen Commit
oder für den Merge-Request mit "Fixes #{Eintragsnummer}" um die Zuordnung zu
erhalten und das automatische Schließen zu ermöglichen.
__Abgelehnte Merge-Request brauchen nicht gelöscht werden!__ Angemerkte und
diskutierte Probleme, die eine Übernahme verhindern, sollten stattdessen
bearbeitet werden bis der Merge-Request übernommen werden kann. __Ein neuer
Request ist nicht erforderlich!__
Segment 5 Intelligente Analyseverfahren, SWE 5.4 Funktionen Fuzzy
=================================================================
Die SWE Funktionen Fuzzy stellt allgemeine Funktionen zur Verfügung, die bei der
Ermittlung von fuzzyfizierten Größen im Rahmen der Straßensubsegmentanalyse
verwendet werden. Eine weitere Anwendung dieser Funktionen findet sich in der
SWE Umfassenden Datenanalyse.
Die SWE Funktionen Fuzzy wird als Softwarebibliothek ausgelegt, die von
beliebigen anderen SWE eingebunden und genutzt werden kann. Sie selbst hat keine
externe Schnittstelle, keine Schnittstelle zum Datenverteiler und keine
Benutzerschnittstelle.
Segment Intelligente Analyseverfahren, SW-Einheit Funktionen Fuzzy
==================================================================
Folgende Funktionen werden angeboten:
- Erstellen und Modifizieren von Fuzzy-Sets und linguistischen Variablen
- Fuzzyfizierung von diskreten Zahlenwerten
- Defuzzyfizierung von Fuzzy-Werten
- Erstellen und Auswerten von Ausdrücken auf Basis von vordefinierten
booleschen Operatoren und Fuzzy-Operatoren
- Ableiten von Wissen aus einer Regelbasis
Bemerkungen
===========
Die SWE stellt eine Softwarebibliothek dar. Die JAR-Datei muss zur Benutzung
lediglich im Klassenpfad der Anwendung aufgenommen werden. Die Beschreibung der
Schnittstelle kann in der API-Dokumentation nachgelesen werden.
* Erstellen von Fuzzy-Sets und linguistischen Variablen
* Fuzzyfizierung von scharfen Messwerten
* Defuzzyfizierung von Fuzzy-Werten
* Erstellen von Regeln und Zusammenstellen von Regeln zu einer Regelbasis
* Ableiten von neuen Fuzzy-Werten mit Hilfe einer Regelbasis
Disclaimer
==========
Installation
------------
Segment 5 Intelligente Analyseverfahren, SWE 5.4 Funktionen Fuzzy
Copyright (C) 2007 BitCtrl Systems GmbH
Die JAR-Datei muss im Klassenpfad aufgenommen werden. Die Bibliothek hat keine
Abhängigkeiten.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
Verwendung
----------
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51
Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Die API ist im JavaDoc dokumentiert.
Kontakt
=======
-------
BitCtrl Systems GmbH
Weißenfelser Straße 67
04229 Leipzig
Phone: +49 341-490670
mailto: info@bitctrl.de
BitCtrl Systems GmbH<br>
Weißenfelser Straße 67<br>
04229 Leipzig<br>
Telefon: +49 341-490670<br>
E-Mail: info@bitctrl.de
-exportcontents: de.bsvrz.iav.fuzzylib.*
-sources: true
Bundle-Name: Funktionen Fuzzy
Import-Package: *; version=!
Bundle-Vendor: BitCtrl Systems GmbH
Automatic-Module-Name: de.bsvrz.iav.fuzzylib
//--------------------------------------------------------------------
// NERZ-SWE-Plugin
//--------------------------------------------------------------------
plugins {
id "de.bsvrz.gradle.nerzswe" version "0.12.0"
id "de.bsvrz.gradle.nerzswe" version "0.13.0"
id "biz.aQute.bnd.builder" version "4.0.0"
}
//--------------------------------------------------------------------
// SWE-Eigenschaften
//--------------------------------------------------------------------
group = 'de.bsvrz.iav'
version = '1.8.3-SNAPSHOT'
description = 'Funktionen Fuzzy (SWE 5.4) - Legacy-Version'
version = '3.0.0-SNAPSHOT'
description = 'Segment Intelligente Analyseverfahren, SW-Einheit Funktionen Fuzzy'
// Properties des NERZ-SWE-Plugins:
nerzswe {
sweStatus = 'BETA'
sweDatum = ''
sweStatus = 'BETA'
sweDatum = ''
}
//--------------------------------------------------------------------
// Abhängigkeiten
//--------------------------------------------------------------------
String kernsoftware_version = '3.9.7'
dependencies {
compile group: 'com.bitctrl', name: 'com.bitctrl', version:'2.0.2'
compile group: 'de.bsvrz.dav', name: 'de.bsvrz.dav.daf', version: kernsoftware_version
compile group: 'de.bsvrz.pat', name: 'de.bsvrz.pat.onlprot', version: kernsoftware_version
compile group: 'de.bsvrz.sys', name: 'de.bsvrz.sys.funclib.bitctrl', version:'1.5.3'
// compile group: 'de.bsvrz.sys', name: 'de.bsvrz.sys.funclib.bitctrl', version:'2.10.0-SNAPSHOT'
testCompile group: 'junit', name: 'junit', version:'4.12'
testImplementation group: 'junit', name: 'junit', version: '4.12'
}
This diff is collapsed.
/*
* Segment 5 Intelligente Analyseverfahren, SWE 5.4 Funktionen Fuzzy
* Copyright (C) 2007-2015 BitCtrl Systems GmbH
* Segment 5 Intelligente Analyseverfahren, SW-Einheit 5.4 Funktionen Fuzzy
* Copyright (C) 2007-2018 BitCtrl Systems GmbH
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suppressions
PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
<suppress files=".*Tests" checks="MethodName|JavadocType|JavadocPackage"/>
<suppress files="InterpreterTests" checks="ClassDataAbstractionCoupling"/>
</suppressions>
<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
</FindBugsFilter>
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
@ECHO OFF
REM ############################################################################
REM Folgende Parameter müssen überprüft und evtl. angepasst werden.
REM ############################################################################
REM Der Klassenpfad für die Fuzzy-Bibliothek und deren JUnit-Testklassen.
SET CP=..\de.bsvrz.iav.fuzzylib-runtime.jar;..\de.bsvrz.iav.fuzzylib-test.jar
REM ############################################################################
REM Ab hier muss nichts mehr angepasst werden.
REM ############################################################################
CHCP 1252
TITLE SWE 5.4 Funktionen Fuzzy (JUnit-Test)
java -cp %CP% com.bitctrl.junit.TestRunner de.bsvrz.iav.fuzzylib
REM Nach dem Beenden warten, damit Meldungen gelesen werden können
PAUSE
#!/bin/bash
################################################################################
# Folgende Parameter müssen überprüft und evtl. angepasst werden. #
################################################################################
# Der Klassenpfad für die Fuzzy-Bibliothek und deren JUnit-Testklassen.
cp=../de.bsvrz.iav.fuzzylib-runtime.jar:../de.bsvrz.iav.fuzzylib-test.jar
################################################################################
# Ab hier muss nichts mehr angepasst werden. #
################################################################################
java -cp $cp com.bitctrl.junit.TestRunner de.bsvrz.iav.fuzzylib
Für die SWE 5.4 Funktionen Fuzzy existiert kein expliziter Prüffall in der
Prüfspezifikation. Der Test dieser SWE ist impliziter Bestandteil des Tests der
SWE 5.2 Straßensubsegmentanalyse im Prüffall 7 "Fuzzy-Technologie".
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
<stringAttribute key="bad_container_name" value="/de.bsvrz.iav.fuzzylib/launc"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/de.bsvrz.iav.fuzzylib"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=de.bsvrz.iav.fuzzylib"/>
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="de.bsvrz.iav.fuzzylib"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea:de.bsvrz.iav&#13;&#10;-Dhsqldb.reconfig_logging=false"/>
</launchConfiguration>
/*
* Segment 5 Intelligente Analyseverfahren, SWE 5.4 Funktionen Fuzzy
* Copyright (C) 2007-2015 BitCtrl Systems GmbH
* Segment 5 Intelligente Analyseverfahren, SW-Einheit 5.4 Funktionen Fuzzy
* Copyright (C) 2007-2018 BitCtrl Systems GmbH
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
......@@ -26,29 +26,20 @@
package de.bsvrz.iav.fuzzylib.fuzzylib;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import com.bitctrl.i18n.MessageHandler;
import com.bitctrl.i18n.Messages;
/**
* Testet den Message-Handler der Fuzzy-Bibliothek.
* Bestimmt das algebraische Produkt zweier Zugehörigkeiten.
*
* @author BitCtrl Systems GmbH, Falko Schumann
*/
public class TestFuzzyLibMessages {
public final class AlgebraischesProdukt extends BiOperation<Zugehoerigkeit> {
public AlgebraischesProdukt(Ausdruck<Zugehoerigkeit> a, Ausdruck<Zugehoerigkeit> b) {
super(Funktionen::algebraischesProdukt, a, b);
}
/**
* Testet ob alle Nachrichten-Konstanten eine Nachricht liefern.
*/
@Test
@SuppressWarnings("static-method")
public void messages() {
for (final MessageHandler e : FuzzyLibMsg.values()) {
assertEquals(Messages.get(e), e.toString());
}
}
@Override
public String toString() {
return "produkt(" + getA() + ", " + getB() + ")";
}
}
/*
* Segment 5 Intelligente Analyseverfahren, SWE 5.4 Funktionen Fuzzy
* Copyright (C) 2007-2015 BitCtrl Systems GmbH
* Segment 5 Intelligente Analyseverfahren, SW-Einheit 5.4 Funktionen Fuzzy
* Copyright (C) 2007-2018 BitCtrl Systems GmbH
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
......@@ -24,15 +24,22 @@
* mailto: info@bitctrl.de
*/
package de.bsvrz.iav.fuzzylib.fuzzylib;
/**
* Implementiert einen Fuzzy-Logik-Interpreter.
*
* <h2>UML-Diagramm</h2>
* <p>Das UML-Diagramm zeigt die Klassen des Pakets im Zusammenspiel mit dem
* Interpreter</p>
* <img src="doc-files/uml.png" alt="Klassendiagramm">
* Bestimmt die algebraische Summe zweier Zugehörigkeiten.
*
* @see de.bsvrz.sys.funclib.bitctrl.interpreter
* @author BitCtrl Systems GmbH, Falko Schumann
*/
package de.bsvrz.iav.fuzzylib.interpreter.logik;
public final class AlgebraischesSumme extends BiOperation<Zugehoerigkeit> {
public AlgebraischesSumme(Ausdruck<Zugehoerigkeit> a, Ausdruck<Zugehoerigkeit> b) {
super(Funktionen::algebraischesSumme, a, b);
}
@Override
public String toString() {
return "summe(" + getA() + ", " + getB() + ")";
}
}
/*
* Segment 5 Intelligente Analyseverfahren, SWE 5.4 Funktionen Fuzzy
* Copyright (C) 2007-2015 BitCtrl Systems GmbH
* Segment 5 Intelligente Analyseverfahren, SW-Einheit 5.4 Funktionen Fuzzy
* Copyright (C) 2007-2018 BitCtrl Systems GmbH
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
......@@ -24,10 +24,19 @@
* mailto: info@bitctrl.de
*/
package de.bsvrz.iav.fuzzylib.fuzzylib;
import java.util.*;
/**
* Allgemeine Hilfsklasse. Hier Klassen mit vordefinierten linguistischen
* Variablen.
* Definition eines Ausdrucks, als Basis(klasse) eines Interpreters.
*
* @param <T> das Ergebnis des Ausdrucks.
* @author BitCtrl Systems GmbH, Falko Schumann
*/
package de.bsvrz.iav.fuzzylib;
@FunctionalInterface
public interface Ausdruck<T> {
T interpretiere(Map<String, ?> kontext);
}
/*
* Segment 5 Intelligente Analyseverfahren, SW-Einheit 5.4 Funktionen Fuzzy
* Copyright (C) 2007-2018 BitCtrl Systems GmbH
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Contact Information:
* BitCtrl Systems GmbH
* Weißenfelser Straße 67
* 04229 Leipzig
* Phone: +49 341-490670
* mailto: info@bitctrl.de
*/